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
在这里插入图片描述

原文链接:https://blog.csdn.net/qq_28686911/article/details/128299410?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836884016800178595162%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836884016800178595162&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-3-128299410-null-null.nonecase&utm_term=docker%E9%83%A8%E7%BD%B2

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享