docker MySQL安装
(错误安装方式)基础:
从docker hub上面查找mysql镜像
docker search mysql
从docker hub 上(阿里云加速器) 拉取MySQL镜像到本地标签为5.7
docker pull mysql:5.7
使用MySQL5.7镜像创建容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
e:环境变量
注意如果Linux服务器正在启动MySQL,端口是启动不了
坑:安装MySQL插入中文字符报错,错误代码:1366
为什么会报错?
docker上默认字符集编码隐患。
进入MySQL容器中执行:SHOW VARIABLES LIKE ‘characte%’;查看默认字符集。
删除容器后,里面的MySQL数据怎么办?
每次启动的时候要挂载数据卷,保证实例删除后,在宿主机上或者其他地方能够恢复过来。
实战(正确安装方式)
创建MySQL容器实例
docker run -d -p 3306:3306 --privileged=true \
-v /宿主机目录/mysql/log:/var/log/mysql \
-v /宿主机目录/mysql/data:/var/lib/mysql \
-v /宿主机目录/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql:5.7
新建my.cnf 通过容器卷同步给MySQL容器实例,解决中文乱码问题。
进入到宿主机:这个目录,/宿主机目录/mysql/conf
vim my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
重新启动MySQL容器实例
docker restart mysql
结论:docker安装完成MySQL并run出容器后,建议请先修改完成字符集编码后,再新建MySQL库-表-插入数据