docker 容器运行mysql 登录时报错 1045 | 您所在的位置:网站首页 › mysql远程连接报错1045 › docker 容器运行mysql 登录时报错 1045 |
用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 实验室设备网 版权所有 |