docker mysql error 1045 using password:yes
错误截图
解决办法
找到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删除或者注释掉.重启容器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义