MySQL 是目前流行的關系型數據庫管理系統。在實際應用中,有時需要將數據庫從一個服務器同步到另一個服務器,以保證數據的一致性。本文將介紹如何使用 MySQL 進行同步,以及如何指定需要同步的庫。
MySQL 同步可以通過多種方式實現,包括基于主從復制、基于 Galera Cluster 等技術。本文將以基于主從復制的方式作為例子進行介紹。
首先,需要在主服務器上設置同步權限。可以使用如下 SQL 語句創建一個新的 MySQL 用戶,并授予其 REPLICATION SLAVE 權限:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
接著,在主服務器上執行一條 SQL 語句,獲取 File 和 Position 的值:
SHOW MASTER STATUS;
這些值將用于在從服務器上開始同步。接下來,在從服務器上執行如下 SQL 語句:
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos; START SLAVE;
其中,MASTER_HOST 為主服務器的 IP 地址,MASTER_USER 和 MASTER_PASSWORD 為在主服務器上創建的 MySQL 用戶的用戶名和密碼,MASTER_LOG_FILE 和 MASTER_LOG_POS 分別為在主服務器上執行 SHOW MASTER STATUS 命令后得到的 File 和 Position 值。
如果要同步指定的庫,可以在主服務器上使用如下命令指定需要同步的庫:
GRANT REPLICATION SLAVE ON dbname.* TO 'repl'@'%';
其中,dbname 為需要同步的庫名。同步后,從服務器上將只包含指定的庫。
綜上所述,MySQL 可以通過主從復制的方式實現服務器間的數據庫同步,而指定需要同步的庫可以使用 GRANT 命令實現。以上是針對 MySQL 同步指定庫的說明。