somemysql> GRANT REPLICATION SLAVE, RELOAD, SUPER ON *.* TO 'july'@'192.168.4.101' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;
-- 驗證
mysql> USE mysql;
mysql> SELECT Host, User FROM user WHERE User = 'july';
+-----------------+------+
| Host | User |
+-----------------+------+
| 192.168.4.101 | july |
+-----------------+------+
net stop mysqldatadir 整個目錄(含 ibdata、.frm、.ibd、binlog 等)到 Slave 同路徑。net start mysql[mysqld]
server-id = 10
log-bin = c:\log\log-bin.log
# 可選:只同步特定庫
binlog-do-db = some
重啟 Master 服務。
[mysqld]
server-id = 11
master-host = 192.168.4.100
master-user = july
master-password = 123456
master-port = 3306
master-connect-retry = 60
replicate-do-db = some
# 關鍵:若修改過 slave 參數,必須刪除 data 目錄下的 master.info、relay-log.info,否則舊值生效
# del /var/lib/mysql/master.info
# del /var/lib/mysql/relay-log.info
重啟 Slave 服務。
mysql> SHOW SLAVE STATUS\G
-- 關鍵指標
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
Master_Log_File: log-bin.000001
Read_Master_Log_Pos: 12345
data\mysql_error.log(或 .err)獲取具體報錯。Slave_IO_Running: No → 網路/防火牆/帳號密碼/bind-address;Slave_SQL_Running: No → 執行 relay log 報錯,按 Last_SQL_Error 修復後 START SLAVE。netsh advfirewall firewall add rule name="MySQL 3306" dir=in action=allow protocol=TCP localport=3306
binlog-do-db / replicate-do-db 僅對**默認庫**生效,跨庫 SQL 可能不同步。