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

此时进入容器内部登陆是可以的,通过容器内登陆修改认证方式

    登陆问题:ERROR 2002 (HY000): Cant 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

经验分享 程序员 微信小程序 职场和发展