docker 容器运行mysql 登录时报错 1045 您所在的位置:网站首页 mysql远程连接报错1045 docker 容器运行mysql 登录时报错 1045

docker 容器运行mysql 登录时报错 1045

2024-07-12 01:36| 来源: 网络整理| 查看: 265

用docker容器跑的mysql5.6一直好好的,今天用navicat链接突然报错:1045 - Access denied for user 'root'@'127.0.0.1' (using password:YES)

看报错是没有root用户的登录权限。 

          首先查看挂载的volumn对应的mysql的配置文件目录是否为空。如果为空可能就把mysql的配置文件也同步为空了。mysql配置目录:/etc/mysql/conf.d,尤其注意查看 my.ini 配置文件是否少了。查看到少了配置文件需要恢复mysql的配置文件,或者干脆重新run一个容器,注意volumn到mysql的配置文件不要为空。

如果配置文件是正确的。就往下看root用户登录ip的限制是否正确:

第一步

登录mysql,命令:mysql -h localhost -u root -p

然后输入密码

登录成功。

第二步

使用mysql数据库

mysql> use mysql;

输入sql:

mysql> select host, user from user;

显示:

mysql> select host, user from user; +--------------+--------+ | host | user | +--------------+--------+ | % | admina | | % | mysqld | | % | server | | 118.25.53.252| root | +--------------+--------+ 4 rows in set (0.00 sec)

这里显示的是哪些ip拥有user的登录权限。上面root的登录权限限定了只有一个ip能登录,需要添加更多的ip登录。

第三步

这里用关键的一条sql加上,我这里是测试环境为了方便,就把host写为%代表所有ip皆可用root用户登录,若是生产环境注意把host写成限制的ip地址,youpassword代表root用户的登录密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

再用刚才的select host, user from user;查看显然多了一条:

mysql> select host, user from user; +--------------+--------+ | host | user | +--------------+--------+ | % | admina | | % | mysqld | | % | server | | % | root | | 118.25.53.252| root | +--------------+--------+ 5 rows in set (0.00 sec) 第四步

使用命令“flush privileges;”,保存授权名单。

最后就可以成功登录了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有