1. 程式人生 > 實用技巧 >02.mysql主從配置

02.mysql主從配置

1.安裝mysql主從伺服器 1.1 初始化docker中mysql掛載目錄
# 新建2個目錄, 存放master和slave的配置和資料,
cd ~ # ~ 代表家目錄 /home/你的使用者名稱/ mkdir mysql_master mkdir mysql_slave

cd mysql_master
mkdir data
cp -r /etc/mysql/mysql.conf.d ./

cd ../mysql_slave
mkdir data
cp -r /etc/mysql/mysql.conf.d ./

1.2 MySQL主機配置和從機配置   主機配置 # vim /root/mysql_master/mysql.conf.d/mysqld.cnf # 埠 port = 3307 # 開啟日誌 general_log_file = /var/log/mysql/mysql.log general_log = 1 # 主機唯一編號 server-id = 1 # binlog日誌檔案 log_bin = /var/log/mysql/mysql-bin.log   從機配置
#
從機配置 /root/mysql_slave/mysql.conf.d/mysqld.cnf
port = 3308 general_log = 0 server-id = 2

1.3 使用docker安裝mysql主從
#1.下載mysql 5.7.32版本的mysql
docker pull mysql:5.7.32 # 直接通過官方下載 #2.啟動master sudo docker run -d --name mysql-master -e MYSQL_ROOT_PASSWORD=1 --network=host - v /root/mysql_master/data:/var/lib/mysql -v /root/mysql_master/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.32 #3.啟動slave sudo docker run -d --name mysql-slave -e MYSQL_ROOT_PASSWORD=1 --network=host -v /root/mysql_slave/data:/var/lib/mysql -v /root/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.32
#4.測試master/slave (密碼是1) mysql -uroot -p1 -h 192.168.56.100 --port=3307 mysql -uroot -p1 -h 192.168.56.100 --port=3308 #5.匯出匯入資料 #5.1 從主機匯出 mysqldump -uroot -p1 -h192.168.56.100 -P3307 --all-databases --lock-all-tables >~/master_db.sql #5.2 匯入從機 mysql -uroot -p1 -h192.168.56.100 -P3308 < ~/master_db.sql

1.4 配置MySQL主從   配置mysql master
# 配置master

# 登入到主機 mysql –uroot –p -h 192.168.56.100 -P 3307 # 建立從機賬號 GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave'; # 重新整理許可權 FLUSH PRIVILEGES;
# 檢視二進位制日誌資訊, 記錄 檔名 和 偏移量, 後面會用到

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |Executed_Gtid_Set|

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000003 | 722     |           |          |

+------------------+----------+--------------+------------------+-------------------+

配置mysql slave
# 配置slave 
# 登入到從機
$ mysql -uroot -p1 -h192.168.56.100 -P3308 # 從機連線到主機 $ change master to master_host='192.168.56.100', master_port=3307, master_user='slave', master_password='slave',master_log_file='mysql-bin.000003', master_log_pos=722; # 開啟從機服務 $ start slave; # 展示從機服務狀態 $ show slave status \G
mysql> show slave status \G

*************************** 1. row ***************************

      Slave_IO_State: Waiting for master to send event
        Master_Host: 192.168.56.100
          Master_User: slave

          Master_Port: 3307
          Connect_Retry: 60
       Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 722
      Relay_Log_File: dev-relay-bin.000002
          Relay_Log_Pos: 320
      Relay_Master_Log_File: mysql-bin.000003
          Slave_IO_Running: Yes
          Slave_SQL_Running: Yes