Docker机搭建mysql集群
1、准备工作
1.1 Docker虚拟机。本实例采用Win10安装的虚拟机.安装方法请参见https://blog.****.net/oyinhezhiguang/article/details/80550534
1.2 Linux连接终端。本实例采用xshell。
1.3 mysql客户端。本实例采用Navicat for MySQL。
2、开始搭建
2.1进入Docker虚拟机。以Win10安装的虚拟机为例。
1、打开Windows Powershell。在【搜索Windows】输入框中输入win,选择Windows Powershell。
2、在弹出的窗口中输入docker-machine start default命令,启动Docker虚拟机。
3、输入docker-machine env default | Invoke-Expression命令进入docker环境。
2.2下载mysql镜像文件
1、本实例采用mysql5.6搭建集群,所以下载mysql5.6.输入命令:docker pull mysql:5.6.
2、下载完毕后,执行docker images,确认mysql5.6已经下载成功。
2.3 搭建mysql集群
1、通过xshell登录linux虚拟环境。需要指出的是,win10系统安装的docker机的linux系统的用户名是:docker,密码:tcuser。
2、在/home/docker路径下创建文件my-m.cnf和my-s.cnf两个文件。
3、在my-m.cnf文件中添加如下内容。
4、在my-s.cnf文件中添加如下内容。
5、创建并启动镜像。
docker run -d -e MYSQL_ROOT_PASSWORD=root123 --name mysql-m -v /home/docker/my-m.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -p 3307:3306 mysql:5.6
docker run -d -e MYSQL_ROOT_PASSWORD=root123 --name mysql-s -v /home/docker/my-s.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -p 3308:3306 mysql:5.6
6、进入主mysql容器,即执行命令:docker exec -it mysql-m /bin/bash
7、创建用户test.执行命令:create user 'test'@'192.168.99.100' identified by '123456';并授权,执行如下命令:
GRANT REPLICATION SLAVE ON *.* to 'test'@'%' identified by '123456';
8、 执行命令:show master status,记录file属性和Position属性,如上图.
9、进入从mysql,并进入mysql。
10、执行命令:change master to master_host='192.168.99.100',master_user='test',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=478,master_port=3307;
11、启动命令:start slave;
12、查看状态:show slave status \G;
13、此时mysql集群搭建成功。接下来我们来验证一下。
2.4 验证集群效果
1、登录主数据库。
2、登录从数据库。
3、可以看到两个mysql都没有test数据库。
4、在主数据库中创建数据库test;create database test,此时看到从数据库也有test数据库。
5、主数据库在test数据库中创建student表。create table student(id int primary key,name varchar(20));
6、插入数据。
集群搭建完毕。