1. 程式人生 > >Docker機搭建mysql叢集

Docker機搭建mysql叢集

1、準備工作

1.1 Docker虛擬機器。本例項採用Win10安裝的虛擬機器.安裝方法請參見https://blog.csdn.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、插入資料。


叢集搭建完畢。