在Ubuntu上遷移MySQL數據庫可以通過多種方法實現,以下是一些常見的方法:
mysqldump 和 mysql 命令行工具備份源數據庫:
使用 mysqldump 工具備份源數據庫。例如:
mysqldump -u [用戶名] -p[密碼] [數據庫名] > backup.sql
注意:-p 后面直接跟密碼,中間沒有空格。
傳輸備份文件:
使用 scp 或其他文件傳輸工具將備份的SQL文件傳輸到目標服務器。例如:
scp backup.sql user@target_server:/path/to/destination/
在目標服務器上恢復數據庫: 登錄到目標服務器并使用以下命令恢復數據庫:
mysql -u [用戶名] -p[密碼] [數據庫名] < /path/to/destination/backup.sql
更新應用程序配置: 如果你的應用程序連接到了源數據庫,確保更新其配置文件,使其指向新的數據庫服務器和數據庫名稱。
測試應用程序: 在生產環境中部署之前,徹底測試應用程序以確保它能夠正確地連接到新的數據庫并正常工作。
配置主服務器:
編輯主服務器的 my.cnf 文件,添加以下配置:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = [數據庫名]
重啟MySQL服務:
sudo systemctl restart mysql
創建復制用戶: 在主服務器上創建一個用于復制的用戶,并授予相應的權限:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'replicator_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
獲取二進制日志位置: 在主服務器上執行以下命令獲取當前的二進制日志位置和文件名:
SHOW MASTER STATUS;
配置從服務器:
編輯從服務器的 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服務:
sudo systemctl restart mysql
設置主服務器信息: 在從服務器上執行以下命令,設置主服務器的信息:
CHANGE MASTER TO MASTER_HOST = '主服務器IP', MASTER_USER = 'replicator', MASTER_PASSWORD = 'replicator_password', MASTER_LOG_FILE = '記錄的日志文件名', MASTER_LOG_POS = 記錄的日志位置;
啟動復制: 在從服務器上執行以下命令啟動復制:
START SLAVE;
在進行數據庫遷移之前,請務必備份所有重要數據,以防數據丟失或損壞。同時,根據您的具體情況和需求選擇合適的遷移方法。