docker mysql error 1045 using password:yes

发布时间 2023-05-05 23:54:59作者: qingjiawen

 

错误截图

 

 解决办法

 找到mysql配置文件 my.cnf 

没有映射的话需要进入到MySQL的容器中找到 /etc/ 下 my.cnf文件

在my.cnf中[mysqld]下添加skip-grant-tables

容器里不能直接修改文件,需要安装 相应的vim。

下面通过 docker cp 拷贝文件进行修改

#将容器中的文件拷贝出来
docker cp 容器ID:/etc/my.cnf /home/

#将宿主机中备份文件拷贝进容器中
docker cp /home/my.cnf 容器ID:/etc/

 

添加完后 要 exit 退出容器 重启容器

 

接下来需要进入到容器

docker exec -it 容器ID /bin/bash

登录mysql

mysql -uroot -p

输完mysql -uroot -p直接回车就能进入到MySQL的操作了

 进入到MySQL后,需要先刷新一下权限,不然可能会提示在skip-grant-tables模式下无法修改密码

flush privileges;

 修改 root 密码,注意要改为复杂点密码。

由于我这边mysql版本是8.0

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

 记得 刷新权限

flush privileges;

然后再看一下root账号的访问权限是否可以远程访问

 设置root账号可以远程访问

update user set host='%' where user='root';

root账号的密码以及权限都修改完成,最后删除MySQL配置文件中的skip-grant-tables,

再把my.ini的skip-grant-tables删除或者注释掉.重启容器