linux安装mysql
#前提条件:成功安装了docker
1. 下载MySQL镜像
下载MySQL.tar.gz镜像文件,然后把这个文件上传到Linux系统:
2.上传到linux
3.进入root目录运行指令
将本地镜像添加到docker中
docker load < MySQL.tar.gz
可以通过docker images查看是否添加成功
docker images
4.设置虚拟机端口转发
将虚拟机中的端口映射到主机的12001端口,这样子在主机可以通过localhost直接访问,设置好端口转发,是立即生效的,你不需要重启虚拟机和CentOS系统
5. 分配固定的docker内网IP
为了给Docker中的容器分配固定的Docker内网IP地址,而且还跟其他现存的Docker容器IP不冲突,所以我们新创建一个Docker内网的网段。网络名字叫做mynet,网段是172.18.0.X,以后我们创建的容器都分配这个网段的IP。需要注意,172.18.0.1是网关的IP,我们不能用。
docker network create --subnet=172.18.0.0/18 mynet
6.创建mysql节点
可以有多个mysql节点,做集群的话可以创建多个,要注意的是参数不能重复,以下提供了另外几个mysql节点,记得在设置第四步的mysql端口转发
docker run -it -d --name mysql_1 -p 12001:3306 \ --net mynet --ip 172.18.0.2 \ -m 400m -v /root/mysql_1/data:/var/lib/mysql \ -v /root/mysql_1/config:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=abc123456 \ -e TZ=Asia/Shanghai --privileged=true \ mysql:8.0.23 \ --lower_case_table_names=1
docker run -it -d --name mysql_1 -p 12001:3306 \ --net mynet --ip 172.18.0.2 \ -m 400m -v /root/mysql_1/data:/var/lib/mysql \ -v /root/mysql_1/config:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=abc123456 \ -e TZ=Asia/Shanghai --privileged=true \ mysql:8.0.23 \ --lower_case_table_names=1
docker run -it -d --name mysql_2 -p 12002:3306 \ --net mynet --ip 172.18.0.3 \ -m 400m -v /root/mysql_2/data:/var/lib/mysql \ -v /root/mysql_2/config:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=abc123456 \ -e TZ=Asia/Shanghai --privileged=true \ mysql:8.0.23 \ --lower_case_table_names=1
docker run -it -d --name mysql_3 -p 12003:3306 \ --net mynet --ip 172.18.0.4 \ -m 400m -v /root/mysql_3/data:/var/lib/mysql \ -v /root/mysql_3/config:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=abc123456 \ -e TZ=Asia/Shanghai --privileged=true \ mysql:8.0.23 \ --lower_case_table_names=1
docker run -it -d --name mysql_4 -p 12004:3306 \ --net mynet --ip 172.18.0.5 \ -m 400m -v /root/mysql_4/data:/var/lib/mysql \ -v /root/mysql_4/config:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=abc123456 \ -e TZ=Asia/Shanghai --privileged=true \ mysql:8.0.23 \ --lower_case_table_names=1
docker run -it -d --name mysql_5 -p 12005:3306 \ --net mynet --ip 172.18.0.6 \ -m 400m -v /root/mysql_5/data:/var/lib/mysql \ -v /root/mysql_5/config:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=abc123456 \ -e TZ=Asia/Shanghai --privileged=true \ mysql:8.0.23 \ --lower_case_table_names=1
7.查看容器
运行docker ps -a命令看一下各个MySQL节点的运行状态,如果是Exited状态,说明该节点创建失败。
docker ps -a
对于创建失败的MySQL节点,你运行docker rm 容器名字这个命令,把该MySQL删除,然后检查创建容器的命令是不是有错误,再重新创建该MySQL容器。
8.连接Navicat 15
9.注意点
你每次启动虚拟机之后,都要启动Docker服务,然后把Docker中这些已经创建的容器运行起来。比如MySQL容器只要启动了,里面的MySQL就运行了。但是有的容器启动之后,我们还要进入到容器运行相应的脚本才可以,所以你要注意,不是把所有容器都启动了就是万事大吉。
比如启动MySQL容器可以执行下面的命令,每启动一个MySQL容器,等待10秒钟,再启动下一个MySQL,否则同时启动多个MySQL,容器容易崩溃。
docker start mysql_1