当在Docker中创建一个Mysql的容器后,需要使用工具如:navicate来连接容器内的MySQL服务,但是
提示Access denied for user 'root'@ 'x.x.x.x' (using password: YES) 错误,用命令进入容器确认密码没有问题,那么就可能是没有开发远程权限。
第一步:选中mysql数据库
use mysql;
第二步:修改库中user表中,user用户的host=%(任意连接)
update user set host='%' where user ='root';
第三步:重新加载权限表
flush privileges;
第四步:给root用户赋予远程连接权限
grant all privileges on *.* to 'root'@'%' with grant option; # 赋予权限并修改密码 alter user 'root'@'%' identified with mysql_native_password by '123456';
1.使用 mysql -u root -p 连接到本地MySQL服务
2.登录后使用 use mysql;
3.使用 grant all privileges on . to ‘root’@‘%’ identified by ‘123456’ with grant option; 赋予远程登录用户权限(使用root账号和密码123456,从任何主机连接到mysql服务器),刷新权限 FLUSH PRIVILEGES;
4.使用 select user,host from user 查看系统用户
5.使用 vim /etc/mysql/mysql.conf.d/mysqld.cnf 修改bind-address的访问网址,将 bind-address=127.0.0.1 改成 bind-address=0.0.0.0
6.开放端口 3306(这是MySQL的默认端口)
以上がMySQL でユーザーのリモート ログイン権限を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。