MySQL 主從配置

1. MySQL 主從配置

  • 讀寫分離是啟動(dòng)多個(gè)MySQL服務(wù), 一臺(tái)服務(wù)器 作為主服務(wù)器(master), 剩下從服務(wù)器(slave)讀取主服務(wù)的 binlog然后寫入數(shù)據(jù)庫.
  • 配置主從服務(wù), 可以分擔(dān)單臺(tái)數(shù)據(jù)庫服務(wù)器的壓力,
  • 實(shí)現(xiàn)步驟:
    • master:
      • 開啟binlog 寫入指定文件, 并且創(chuàng)建一個(gè)授權(quán)用戶 用于授權(quán) slave 來復(fù)制日志.
    • slave:
      • 設(shè)置Master 的相關(guān)配置, slave 會(huì)復(fù)制master的binlog 并寫入自己的 relaylog 中, slave 會(huì)啟動(dòng)一個(gè)線程讀取 relaylog 并寫入數(shù)據(jù)庫中.

2. 主從配置

  1. 準(zhǔn)備主從兩個(gè)MySQL
  • 我這里是單臺(tái)服務(wù)器啟動(dòng)了兩個(gè)MySQL 服務(wù)
[root@node10009 mysql]# ss -tanp |grep 330
LISTEN     0      128    127.0.0.1:3307                     *:*                   users:(("mysqld",pid=3646,fd=34))
LISTEN     0      128         :::3306                    :::*                   users:(("mysqld",pid=965,fd=35))
[root@node10009 mysql]# 
  1. 備份并恢復(fù)
  • 備份Master 數(shù)據(jù), 恢復(fù)到Slave 上
  • 備份
[root@node10009 mysql]# mysqldump -uroot -p -P3306 test > /opt/back/test.sql
  • 恢復(fù)到從服務(wù)器
[root@node10009 mysql]# mysql -uroot -p -P3307 < /opt/backup/test.sql
Enter password: 
[root@node10009 mysql]# 
  1. master 配置文件
[mysqld]
server_id                              = 101
log_bin                                = /opt/app/mysql57/data/binlog/mysql_bin
  • 重啟
[root@node10009 mysql]# systemctl restart mysqld
[root@node10009 mysql]# 
  • 查看master 狀態(tài)
MySQL [(none)] > show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000096 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

  • 創(chuàng)建用戶用戶用于 salve 連接到 Master
MySQL [(none)] > GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.10.%' IDENTIFIED BY 'backup';
  1. slave 配置
  • 編輯配置文件
[mysqld]
server_id                              = 102
relay_log                              = /opt/app/mysql/data/relaylog/relay_log
  • 重啟
[root@node10009 mysql]# /opt/app/mysql/bin/mysqladmin -uroot -p -P3306 shutdown
[root@node10009 mysql]# /opt/app/mysql/bin/mysqld_safe --defaults-file=/opt/app/mysql/etc/my.cnf -umysql &
  • 配置slave 連接master
MySQL [test] > CHANGE MASTER TO MASTER_HOST='192.168.10.9',MASTER_USER='slave',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql_bin.000096',MASTER_LOG_POS=154;
Query OK, 0 rows affected, 2 warnings (0.03 sec)
  • 查看狀態(tài)
MySQL [test] > show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: 192.168.10.9
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql_bin.000096
          Read_Master_Log_Pos: 154
               Relay_Log_File: relay_log.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql_bin.000096
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
....
  1. 測(cè)試
  2. 查看主從數(shù)據(jù)
001.png
  1. master 修改數(shù)據(jù)并查看
002.png

END

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容