MySQL 是世界上最流行的關系型數據庫管理系統。在我們的日常工作中,經常需要將數據從一個服務器導入到另一個服務器。而 MySQL 提供了多種方式來實現跨服務器的數據導出和導入。
最常用的方式是通過 mysqldump 命令將數據導出為 SQL 文件,然后通過 SCP 命令將文件復制到另一臺服務器,最后使用 mysql 命令將 SQL 文件導入到目標服務器。下面是一個示例命令:
# 在源服務器上導出數據 mysqldump -u root -p --databases dbname1 dbname2 >data.sql # 將 SQL 文件復制到目標服務器 scp data.sql user@destination:/home/user/ # 在目標服務器上導入數據 mysql -u root -p< data.sql
除了 mysqldump,還可以使用 MySQL 自帶的數據復制工具。
先在源服務器上編輯 my.cnf 配置文件,添加以下配置:
# 配置數據復制 [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=dbname1 binlog-do-db=dbname2
然后在目標服務器上編輯 my.cnf 配置文件,添加以下配置:
# 配置數據復制 [mysqld] server-id=2 log-bin=mysql-bin
最后在源服務器上執行以下 SQL 命令,使數據能夠被復制到目標服務器:
GRANT REPLICATION SLAVE ON *.* TO 'user'@'destination' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
記錄下輸出的 File 和 Position 信息,然后在目標服務器上執行以下命令:
# 配置從服務器 CHANGE MASTER TO MASTER_HOST='source', MASTER_USER='user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.NNNNNN', MASTER_LOG_POS=NNNNNN; # 開始復制數據 START SLAVE;
以上就是 MySQL 跨服務器導數據的兩種方式。選擇哪種方式取決于數據量和網絡環境。