在CentOS上進行MySQL數據庫遷移,通常有兩種主要方法:使用mysqldump
工具進行邏輯備份遷移和直接復制數據庫文件進行物理備份遷移。以下是詳細的步驟和說明:
安裝MySQL客戶端: 確保目標服務器上已安裝MySQL客戶端。如果沒有,請使用以下命令安裝:
sudo yum install mysql-client
備份源數據庫:
在源服務器上,使用mysqldump
命令備份數據庫。將source_user
、source_password
、source_host
和source_database
替換為實際的源數據庫憑據和名稱:
mysqldump -u source_user -psource_password -h source_host source_database > source_backup.sql
將備份文件傳輸到目標服務器:
使用scp
、rsync
或其他文件傳輸工具將生成的SQL文件從源服務器傳輸到目標服務器。例如,使用scp
:
scp source_backup.sql target_user@target_host:/path/to/destination/
在目標服務器上恢復數據庫:
在目標服務器上,創建一個新的數據庫(如果需要),然后使用mysql
命令將備份文件導入到新數據庫中。將target_user
、target_password
和target_database
替換為實際的目標數據庫憑據和名稱:
mysql -u target_user -ptarget_password target_database < /path/to/destination/source_backup.sql
找到源數據庫的數據目錄:
通常,它位于/var/lib/mysql/source_database
。
將數據目錄復制到目標服務器的相應位置:
例如,將其復制到/var/lib/mysql/target_database
:
sudo scp -r /var/lib/mysql/source_database target_user@target_host:/var/lib/mysql/
在目標服務器上創建新的數據庫(如果需要):
mysql -u target_user -ptarget_password -e "CREATE DATABASE target_database"
更改目標數據庫數據目錄的所有權:
sudo chown -R mysql:mysql /var/lib/mysql/target_database
重啟MySQL服務以應用更改: 在CentOS上,使用以下命令重啟MySQL服務:
sudo systemctl restart mysqld
配置主服務器:
在源服務器上配置MySQL復制,使其成為主服務器。編輯/etc/my.cnf
或/etc/mysql/my.cnf
文件,添加以下配置:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = [數據庫名]
重啟MySQL服務以應用配置:
systemctl restart mysqld
創建復制用戶: 在主服務器上創建一個用于復制的用戶。
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
獲取二進制日志位置: 獲取當前二進制日志的位置和文件名。
SHOW MASTER STATUS;
配置從服務器:
在目標服務器上配置MySQL復制,使其成為從服務器。編輯/etc/my.cnf
或/etc/mysql/my.cnf
文件,添加以下配置:
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
replicate_do_db = [數據庫名]
重啟MySQL服務以應用配置:
systemctl restart mysqld
設置主服務器信息: 在從服務器上設置主服務器的信息。
CHANGE MASTER TO MASTER_HOST = '主服務器IP', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 123;
啟動從服務器復制:
START SLAVE;
檢查復制狀態: 檢查從服務器的復制狀態。
SHOW SLAVE STATUS\G
選擇適合你需求的方法進行遷移。物理備份和恢復通常更快,但需要更多的磁盤空間和網絡帶寬。使用MySQL復制則可以實現實時數據同步,但配置相對復雜。
希望這些信息能幫助您順利完成CentOS上的MySQL數據庫遷移。如果在遷移過程中遇到任何問題,請參考MySQL官方文檔或尋求社區幫助。