同步MySQL主庫與測(cè)試庫數(shù)據(jù)可以通過多種方法實(shí)現(xiàn),以下是幾種常見的方法:
導(dǎo)出主庫數(shù)據(jù):
mysqldump -u [用戶名] -p[密碼] --databases [數(shù)據(jù)庫名] > [導(dǎo)出文件名].sql
例如:
mysqldump -u root -p --databases mydatabase > mydatabase_backup.sql
導(dǎo)入數(shù)據(jù)到測(cè)試庫:
登錄到測(cè)試庫MySQL服務(wù)器,然后使用mysql
命令導(dǎo)入導(dǎo)出的SQL文件:
mysql -u [用戶名] -p[密碼] [數(shù)據(jù)庫名] < [導(dǎo)出文件名].sql
例如:
mysql -u root -p mydatabase < mydatabase_backup.sql
配置主庫:
編輯主庫的my.cnf
(或my.ini
)配置文件,確保以下配置項(xiàng)存在且正確:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=[需要復(fù)制的數(shù)據(jù)庫名]
重啟主庫MySQL服務(wù)以使配置生效。
獲取主庫二進(jìn)制日志坐標(biāo):
在主庫上執(zhí)行以下命令以獲取當(dāng)前的二進(jìn)制日志坐標(biāo)(文件名和位置):
SHOW MASTER STATUS;
記下File
和Position
的值。
配置測(cè)試庫:
編輯測(cè)試庫的my.cnf
(或my.ini
)配置文件,確保以下配置項(xiàng)存在且正確:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
重啟測(cè)試庫MySQL服務(wù)以使配置生效。
設(shè)置主庫和測(cè)試庫的連接:
在測(cè)試庫上創(chuàng)建一個(gè)用于復(fù)制的主庫賬號(hào),并授權(quán):
CREATE USER '[用戶名]'@'%' IDENTIFIED BY '[密碼]';
GRANT REPLICATION SLAVE ON *.* TO '[用戶名]'@'%';
FLUSH PRIVILEGES;
配置測(cè)試庫作為從庫:
在測(cè)試庫上執(zhí)行以下命令,使用之前獲取的二進(jìn)制日志坐標(biāo)來配置從庫:
CHANGE MASTER TO
MASTER_HOST='主庫IP',
MASTER_USER='[用戶名]',
MASTER_PASSWORD='[密碼]',
MASTER_LOG_FILE='[文件名]',
MASTER_LOG_POS=[位置];
START SLAVE;
檢查從庫的狀態(tài)以確保復(fù)制正常進(jìn)行。
安裝并備份主庫:
使用Percona XtraBackup工具備份主庫數(shù)據(jù):
innobackupex --user=[用戶名] --password=[密碼] --host=[主庫IP] --databases=[數(shù)據(jù)庫名] /path/to/backup
將備份文件傳輸?shù)綔y(cè)試庫:
將備份文件復(fù)制到測(cè)試庫的相應(yīng)位置。
在測(cè)試庫上恢復(fù)備份:
在測(cè)試庫上使用innobackupex
命令恢復(fù)備份數(shù)據(jù):
innobackupex --user=[用戶名] --password=[密碼] --host=[測(cè)試庫IP] /path/to/backup
配置測(cè)試庫以同步主庫更改(可選):
如果需要實(shí)時(shí)同步主庫的更改,可以配置測(cè)試庫作為從庫,并使用MySQL復(fù)制功能。