docker部署mysql问题汇总

部署命令

注意conf文件在实际容器中的位置,有的版本是直接在/etc目录下,可以先创建一个容器进去看看

docker run --restart=always --privileged=true  \
-v $PWD/mysql/data/:/var/lib/mysql \
-v $PWD/mysql/logs/:/var/log/mysql \
-v $PWD/mysql/conf/:/etc/mysql \
-v $PWD/mysql/conf/my.cnf:/etc/mysql/my.cnf  \
-p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql
  • 登录问题
    在容器外登陆报错
    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
    MySQL8.0.11版本默认的认证方式是caching_sha2_password ,而在MySQL5.7版本则为mysql_native_password
    mysql密码机制介绍

此时进入容器内部登陆是可以的,通过容器内登陆修改认证方式
在这里插入图片描述

  • 登陆问题:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

在这里插入图片描述

这个问题是mysql.sock文件默认路径和docker启动时映射路径不一致引起

有两种解决办法,一种是配置文件my.cnf修改socket路径,然后重启容器
还有一种简单的方法不需要重启容器,只需要增加一条软链接即可
ln -s 实际目录/mysql.sock /var/lib/mysql/mysql.sock

  • 参数报错:ERROR 1238 (HY000): Variable 'default_authentication_plugin' is a read only variable
    写入my.cnf 文件后重启MySQL
    在这里插入图片描述
  • 编码问题:msql默认编码为character_set_server = Latin1

同样修改配置文件my.cnf
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值