Linux版本:3.10.0
Red-Hat:4.8.5-44
Docker:20.10.7
MySql:5.7
Mysql安装步骤
一、创建mysql实例
①3306:3306表示当前宿主机容器号:mysql的容器号
②-e MYSQL_ROOT_PASSWORD:设置管理员密码
③-i:运行容器
-d:创建守护式容器(能够使用docker exec方法连接上容器,且退出时容器不会停止)
-p:端口映射
-e:设置环境变量(后边跟一些变量和命名)
释义:使用mysql8.0.25版本作为镜像,创建一个名为mysql8.0.25的容器在3306端口,与宿主机的3306端口映射,设置root用户密码为123
docker run -id --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 mysql:5.7
二、查看是否能成功生成mysql容器
docker ps -a
三、进入mysql容器中
docker exec -it mysql /bin/bash
四、看能否进入mysql
mysql -uroot -p设置的密码
五、退出容器后设置mysql自启动
docker update mysql --restart=always
至此mysql就能正常运行并且在重启Linux后mysql服务能自动启动,但此时的mysql编码可能并不是utf8
更改字符集编码(重启后依然生效)
一、查看目前字符集编码
SHOW VARIABLES LIKE '%char%';
可以看到编码方式不是以utf8输出,因此,可以考虑去mysql容器中修改mysql的配置文件
二、从容器中取得相应配置文件
因为容器内部没有文本编辑器,因此我们需要从容器中取得相应文件在容器外编辑
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /temp
cd /temp
三、对mysqld.cnf文件进行编辑
为文件添加字符集编码配置
如果没有[client]标签可以自己添加
四、将修改后的文件放进容器中
docker cp mysqld.conf mysql:/etc/mysql/mysql.conf.d/
五、重启mysql服务后再次查看编码
#重启mysql服务
docker restart mysql
#进入mysql容器
docker exec -it mysql /bin/bash
#进入mysql数据库
mysql -uroot -p设置的密码
#查看字符集编码
SHOW VARIABLES LIKE '%char%';
修改成功
修改字符集编码的补充:
进入容器想修改my.cnf时发现结构如下:
my.cnf并不是一个配置文件而是一个软链接,查看软链接地址之后发现/etc/alternatives/my.cnf也是一个连接到/etc/mysql/mysql.cnf的软链接,因此打算直接修改mysql.cnf
利用cat读取mysql.cnf的内容
发现还调用了其他的配置文件,进入后发现了配置文件信息,就能对mysql配置进行修改了