欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root

程序员文章站 2024-03-25 14:08:58
...
  1. 首先我的错误是这样的
access denied for user aaa@qq.com地址 (using password:YES) 1045

这里using password 是yes 说明我们连接mysql的密码是对的,但是是root拒绝访问。
所以出现错误的原因就是root拒绝远程连接,我们只要把root的权限设置所有远程主机可以连接就可以了。
2. 我在docker 上运行容器的命令是这样,密码也设置了123

docker run -p 3306:3306 --name mysql -v /yzf/mysql/conf:/etc/mysql/conf.d -v /yzf/mysql/logs:/logs -v /yzf/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.6
  1. 进入mysql容器内部
docker exec -it 容器id bash
  1. mysql -uroot -p123 进入了数据库
  2. 执行如图阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root
  3. select User,Host,authentication_string from user;
    阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root
    我这里给root开放了所有主机的连接mysql权限 %的意思,大家可能只有root localhost
  4. 开放权限的语句
    阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root
    identified by 后面的是root对应的认证密码。
select User,Host,authentication_string from user;
flush privileges; 

这句的意思是从mysql数据库的grant表中重新加载权限数据
因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
8. 现在就可以连接上了
9. 阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root

用到的一些语法以及命令

显示表结构 desc 表名;
显示表列 show columns from 表名;
docker服务重启

  1. 守护进程重启
    sudo systemctl daemon-reload
  2. 重启docker服务
    sudo systemctl restart docker
  3. 关闭docker
    sudo systemctl stop docker
  4. centos7开放端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --reload

阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root

注意 如果用的是阿里云ecs 需要开放安全组mysql3306端口号。阿里云ecs服务器在docker上安装mysql5.6 远程连接出错access denied for user root

相关标签: # Docker