MySQL主從復(fù)制(Master-Slave Replication)是一種常用的數(shù)據(jù)庫解決方案,利用主數(shù)據(jù)庫(Master)的修改日志(binary log)將數(shù)據(jù)同步到從數(shù)據(jù)庫(Slave)上,使得多臺(tái)使用者可以同時(shí)分享和存取該數(shù)據(jù)庫。下面就是如何在MySQL8中進(jìn)行主從復(fù)制的配置。
首先,在主數(shù)據(jù)庫上進(jìn)行以下操作:
show master status;
執(zhí)行后,會(huì)輸出類似以下內(nèi)容:
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 19051 | | | +------------------+----------+--------------+------------------+
其中,F(xiàn)ile 字段表示當(dāng)前二進(jìn)制日志文件的名稱,Position 表示當(dāng)前二進(jìn)制日志文件內(nèi)的位置。記下此輸出信息。
接著,在從數(shù)據(jù)庫上進(jìn)行以下操作:
change master to master_host='master_ip', master_port=3306, master_user='replicator', master_password='password', master_log_file='mysql-bin.000003', master_log_pos=19051; start slave;
其中,master_host 替換成主數(shù)據(jù)庫的 IP 地址,master_user 和 master_password 替換成主數(shù)據(jù)庫的用戶名和密碼,master_log_file 和 master_log_pos 替換成上面記下的輸出信息。
然后,可以使用以下命令檢查主從數(shù)據(jù)庫是否連接正常:
show slave status\G
執(zhí)行后,會(huì)輸出類似以下內(nèi)容:
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.2 Master_User: replicator Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 19051 Relay_Log_File: mysqld-relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000003 Slave_IO_Running: Yes Slave_SQL_Running: Yes
注意 Slave_IO_Running 和 Slave_SQL_Running 是否為 Yes,如果是,則主從數(shù)據(jù)庫連接正常。
通過以上配置,可以實(shí)現(xiàn) MySQL8 主從復(fù)制的功能,使得多臺(tái)使用者可以同時(shí)分享和存取該數(shù)據(jù)庫。