文章摘要
这篇文章介绍了在Docker容器中开启MySQL远程访问权限的详细步骤。主要内容包括:
1. **背景**:在Docker中创建MySQL容器后,无法直接连接到MySQL服务,提示`Access denied`错误。
2. **解决方法**:
- 使用`mysql -u root -p`连接本地MySQL服务,验证密码无误。
- 修改MySQL数据库中`root`用户的`host`设置为任意值。
- 冲裁权限表(`flush privileges`)。
- 授予`root`用户远程连接权限(`GRANT ALL PRIVILEGES`)并修改密码。
- 修改数据库配置文件(`.myconfig`)中的`bind-address`,将其从`127.0.0.1`改为`0.0.0.0`。
3. **总结**:通过以上步骤,成功实现了MySQL服务的远程访问权限。
这篇文章为需要在Docker中配置远程访问MySQL的用户提供了实用的解决方案。
目录MySQL开启用户远程登录权限开放MySQL的远程访问权限总结
当在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’;
# 赋予权限并修改密码
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开放远程连接权限的两种方法MySQL数据库远程访问权限如何打开(两种方法)MYSQL开启远程访问权限的方法MySql如何实现远程登录MySql数据库过程解析
© 版权声明
文章版权归作者所有,未经允许请勿转载。