Docker运行mysql镜像时设置的密码不生效

docker run -d \
--name mysql_ooblog \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=xxx \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql

运行以上代码时,mysql实例正常运行,但是在远程连接时提示密码不正确。

运行docker exec -it mysql_ooblog bash进入容器内部时,发现使用密码xxx确实无法进入到mysql,在尝试几个历史密码后误打误撞成功。


解决:原来是把mysql配置目录挂载的本机目录有之前的数据,把挂载的三个文件夹都清一下就好了。

此外,在额外分享一些其他新手初学docker的bug,希望能给你帮助。

1. exec进入容器内部后可以用密码xxx登录,但是在外部连接时不行,这种情况可以在内部看一下名为mysql的数据库的user表,看host字段为%的一列是否都为N,如果是,那代表外界无法访问,可以手动改成Y。

2.docker run后发现docker ps命令找不到刚刚run的实例,大概率是容器创建报错而自动exit,用docker ps -a就可以看到容器当前处于什么状态,然后用docker logs (容器名) 命令查看错误日志排查。

3.手动更改mysql密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

如有错误请在评论区指出,多谢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值