今天给大家分享Centos8系统下安装mysql8.0.27,具体参考下面的步骤就可以使用Docker正确安装mysql。
1、拉取镜像
#拉取最新的mysql版本
docker pull mysql
#查看mysql镜像
docker images mysql
输出:
2、首先启动容器
启动容器创建宿主主机要挂载的目录,然后拷贝容器对应的目录到宿主主机。
#运行mysql容器
docker run --name mysql8 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0.27
#查看mysql日志,如果没有报错信息,然后进行下面的操作
docker logs mysql8
#进入mysql容器内部
docker exec -it mysql8 /bin/bash
#查看mysql的配置文件my.cnf
cat /etc/mysql/my.cnf
#退出容器
exit
#当前服务器创建挂在mysql配置文件
mkdir -p /usr/local/mysql8/conf /usr/local/mysql8/data
#文件夹授权
chmod -R 755 /usr/local/mysql8
#将容器中的my.cnf文件拷贝到服务器
docker cp 容器名:容器中my.cnf的路径/要拷贝到服务器的相应路径
docker cp mysql8:/etc/mysql/my.cnf /usr/local/mysql8/conf
修改后my.cnf文件内容具体内容如下:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
character_set_server = utf8mb4
collation_server = utf8mb4_bin
3、停止容器创建shell脚本文件用来运行容器
#停止容器
docker stop mysql8
#删除容器
docker rm mysql8
#进入服务器创建的mysql目录
cd /usr/local/mysql8
#创建mysql运行脚本
vi mysqlRun.sh
mysqlRun.sh脚本内容如下:
设置MYSQL的配置信息、挂载目录、开放端口
#!/bin/sh
docker run \
-p 3306:3306 \
--name mysql8 \
--privileged=true \
--restart unless-stopped \
-v /home/mysql8/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/mysql8/logs:/logs \
-v /home/mysql8/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.27
4、重新通过脚本启动容器
#执行脚本启动mysql容器
sh mysql8-docker-run.sh
#查看MySQL日志是否有报错
docker logs mysql8
5、验证效果
查看日志果没有报错,就可以用mysql客户端测试链接是否ok,
要保证mysql默认的3306端口可以外网访问。
验证mysql数据挂在是否成功
创建test数据库,创建user表
服务器MySQL数据如图:
#docker容器查看是否有对应的数据文件
docker exec -it mysql8 /bin/bash #进入容器内部
cd cd /var/lib/mysql # 进入docker的MySQL目录
ls #查看是否有test
cd test #进入test目录
ls #查看是否有 user.ibd 文件
6、后续运维重启MYSQL容器命令
#停止容器
docker stop <容器Id>
docker stop 572219d3a0ca
#重新启动
docker start <容器Id>
docker start 572219d3a0ca