在Ubuntu系統中遷移MySQL數據庫可以通過多種方式實現,以下是一些常見的方法:
mysqldump
和mysql
命令行工具備份源數據庫
mysqldump -u [用戶名] -p[密碼] [數據庫名] > backup.sql
例如:
mysqldump -u root -pMySecretPassword mydatabase > backup.sql
將備份文件傳輸到目標服務器
可以使用scp
、rsync
或其他文件傳輸工具將備份文件從源服務器傳輸到目標服務器。
scp backup.sql user@target_server:/path/to/destination/
在目標服務器上恢復數據庫 登錄到目標服務器并使用以下命令恢復數據庫:
mysql -u [用戶名] -p[密碼] [數據庫名] < /path/to/destination/backup.sql
例如:
mysql -u root -pMySecretPassword mydatabase < /home/user/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;
還有一些第三方工具可以幫助你更方便地進行數據庫遷移,例如:
通過以上方法,你可以在Ubuntu系統中成功遷移MySQL數據庫。