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、插入資料。
叢集搭建完畢。