centos7.6下使用docker搭建主從數據庫

 

環境信息

操作系統 CentOS7.6 x64
Docker版本 1.13.1

 安裝docker

使用yum安裝docker

yum install -y docker

查看是否安裝docker

yum list installed | grep docker

安裝成功如圖

 啓動docker

systemctl start docker

查看docker是否啓動成功

systemctl status docker

成功如圖

docker安裝mysql 

拉取mysql鏡像,可以使用docker pull mysql:latest獲取最新mysql鏡像 

docker pull mysql:5.7

查看鏡像是否拉取成功

docker images

 創建主數據庫

docker run --name mysql-master -p 3337:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 創建從數據庫

docker run --name mysql-slave -p 3338:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

查看dcoker容器

docker ps -a

 

配置主數據庫

進入master容器

docker exec -it mysql-master /bin/bash 

登錄mysql

mysql -u root -p123456

修改root權限,可以通過任何客戶端連接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改 MySQL 配置文檔 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 段添加以下配置:

log-bin=mysql-bin    //[必須]啓用二進制日誌
server-id=1          //[必須]服務器標識ID,每臺服務器唯一

你可能會遇到bash: vi: command not found,這是因爲vim沒有安裝,可以使用如下命令安裝:

apt-get update
apt-get install vim

配置從數據庫

進入slave容器

docker exec -it mysql-slave /bin/bash

 

登錄mysql

mysql -u root -p123456

修改root權限,可以通過任何客戶端連接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改 MySQL 配置文檔 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 段添加以下配置:

log-bin=mysql-bin    //[必須]啓用二進制日誌
server-id=2         //[必須]服務器標識ID,每臺服務器唯一

主從配置

記得在配置完主數據和從數據庫後要重啓數據庫,紅線處就是容器ID

docker restart <容器 ID>    重啓容器

連接主數據庫,查看數據庫狀態

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

記錄 File 的值和 Position 的值,等會配置 slave 服務器的時候要用

連接從數據庫,配置主從複製

mysql>change master to
master_host='x.x.x.x', // 這裏填 master 主機 ip
master_user='root',
master_log_file='mysql-bin.000001', // 這裏填寫 File 的值
master_log_pos=154, // 這裏填寫 Position 的值。
master_port=3337,
master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.03 sec)
mysql> start slave; // 啓動從服務器複製功能
Query OK, 0 rows affected (0.01 sec)

如果不小心配置錯, 輸入 mysql> stop slave; 然後再錄入一遍就可以了。

查看主從連接狀態,圖中紅色框內兩個必須位yes才表示成功

show slave status\G

 

然後你就可以使用navicat連接主從數據庫,記得連接數據庫的端口爲你3306映射到的端口號。連接成功後,你操作主數據庫,你會發現從數據庫也進行了同樣的操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章