MySQL 搭建主從同步實現操作

一、MySQL 8.0 主從同步

主從同步的流程(原理):

  • master 將變動記錄到二進制日志文件(binary log)中,即配置文件中 log-bin 指定的文件,這些記錄叫做二進制日志事件(binary log events);
  • master 將二進制日志文件發送給 slave;
  • slave 通過 I/O 線程讀取文件中的內容寫到 relay 日志中;
  • slave 執行 relay 日志中的事件,完成數據在本地的存儲。

搭建主從需要註意的事項:

  • 主從服務器操作系統版本和位數一致;
  • MasterSlave 數據庫版本要一致;
  • Master 和 Slave 數據庫中的數據要一致;
  • Master 開啟二進制日志, Master 和 Slave 的 server_id 在局域網內必須唯一。

二、MySQL主從搭建

2.1 Master 上的操作

修改 master 的配置( my.cnf)加入下面的內容:

[mysqld]
  log-bin=mysql-bin
  # id 必須唯一!!!
  server-id=1

重啟 master:

systemctl restart mysql

在 master 中創建用於主從同步的用戶:

mysql> # 創建用戶
mysql> CREATE USER 'hugh'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> # 授權用戶
mysql> GRANT REPLICATION SLAVE ON *.* TO 'hugh'@'%';
mysql> # 刷新權限
mysql> FLUSH PRIVILEGES;

查看主服務器狀態:

show master status;

記錄下 FilePosition 的值,之後要用到。

2.2 Slave 上的操作

修改slave 的配置( my.cnf)加入下面的內容:

[mysqld]
  # id 必須唯一!!!
  server-id=2

重啟 slave:

systemctl restart mysql

登錄 MySQL 並運行以下命令,設置主節點參數:

mysql> CHANGE MASTER TO
MASTER_HOST='master的IP地址',
MASTER_USER='hugh',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=856;

最後兩行就是我們記錄下的 File Position 的值。

查看主從同步的狀態:

mysql> show slave status\G;

檢查下面的信息,都為 yes 才代表搭建成功:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

到此這篇關於MySQL 中的主從同步實現操作的文章就介紹到這瞭,更多相關MySQL 主從同步內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: