Mysql-docker容器化部署及实际使用最佳实践

mysql9.1版本docker镜像拉取

crpi-i61y07ljxv9scth6.cn-beijing.personal.cr.aliyuncs.com/programmerqin_registry/mysql

docker容器化部署最简命令

docker run -d --privileged=true --name="mysql" -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123456' crpi-i61y07ljxv9scth6.cn-beijing.personal.cr.aliyuncs.com/programmerqin_registry/mysql
其中--privileged=true表示当使用--privileged=true选项运行容器时,Docker会赋予容器几乎与主机相同的权限,允许容器访问主机的所有设备

mysql容器内无法连接数据库套接字故障

如果安装使用docker的操作系统之前以软件包的形式安装过mysql,那mysql的docker容器可能会在进入容器后无法连接,提示:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这种情况想启动一个mysql容器并正常使用,只需要对本地建立一个文件夹,使用-v参数将mysql容器的工作目录挂载到本地即可解决:
docker run -p 3306:3306 -d --name mysql \ -v /var/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ crpi-i61y07ljxv9scth6.cn-beijing.personal.cr.aliyuncs.com/programmerqin_registry/mysql:5.7.43

mysql容器内显示汉字乱码

docker进入容器时指定字符集即可:docker exec -it mysql env LANG=C.UTF-8 /bin/bash

mysql容器中无法使用mysqlbinlog等工具

mysql自带的许多工具,比如mysqlbinlog之类的,在普通数字版本号的就直接阉割掉了(如mysql:8.0),参考官方说明:mysqlbinlog binary is missing on docker image 8.0.30,一度以为是自己容器水平不过关,最后是这么个原因,只要选择8.0.30-debian之类的版本号pull对应镜像即可docker pull crpi-i61y07ljxv9scth6.cn-beijing.personal.cr.aliyuncs.com/programmerqin_registry/mysql:8.0.40-debian

mysql数据库配置文件my.ini不能使用win下的记事本编辑,会导致文件编码异常进而导致服务不能启动

posted @   小雨淅淅o0  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示