天天看點

mysql複制一張表的一列到另一張表_mysql怎麼複制一個資料庫中的一張表到另外一個資料庫...

master [localhost:45008] ((none)) > create user [email protected]'%' identified by 'sekret';

Query OK, 0 rows affected (0.01 sec)

master [localhost:45008] ((none)) > GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%';

Query OK, 0 rows affected (0.00 sec)

作為安全措施,我建議将百分号 % 替換為從機的 IP、主機名或網絡掩碼,以便隻有未來的從伺服器才能接受連接配接。現在,從伺服器上,克隆使用者需要CLONE_ADMIN 權限來替換從機資料,在克隆操作期間阻止 DDL 并自動重新啟動伺服器。

slave1 [localhost:45009] ((none)) > create user [email protected]'localhost' identified by 'sekret';

Query OK, 0 rows affected (0.01 sec)

slave1 [localhost:45009] ((none)) > GRANT CLONE_ADMIN ON *.* TO 'clone_user'@'localhost';

Query OK, 0 rows affected (0.00 sec)

接下來,安裝并驗證插件,并在主和從伺服器上建立使用者。

克隆過程

如上所述,克隆過程可以在本地或遠端執行。此外,它支援複制,這意味着克隆操作從捐贈者提取和傳輸複制坐标并将其應用于收件人。它可用于 GTID 或非 GTID 複制。是以,要開始克隆過程,首先,讓我們確定有一個有效的供體(Master)。這由 clone_valid_donor_list 參數控制。由于它是動态參數,您可以在伺服器運作時進行更改。使用 show variables 指令将顯示參數是否具有有效的供體(Master):slave1 [localhost:45009] ((none)) > SHOW VARIABLES LIKE 'clone_valid_donor_list';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| clone_valid_donor_list | |+------------------------+-------+1 row in set (0.01 sec)

例子中,我們需要對它進行設定:slave1 [localhost:45009] ((none)) > set global clone_valid_donor_list = '127.0.0.1:45008';Query OK, 0 rows affected (0.00 sec)

下一步不是強制性的,但使用預設的 log_error_verbosity,錯誤日志不會顯示有關克隆進度的大量資訊。是以,對于這個例子,我會将詳細程度調整到更高的級别(在供體和受體機上):mysql > set global log_error_verbosity=3;Query OK, 0 rows affected (0.00 sec)

現在,讓我們在受體(Slave)上開始克隆過程:slave1 [localhost:45009] ((none)) > CLONE INSTANCE FROM [email protected]:45008 identified by 'sekret';Query OK, 0 rows affected (38.58 sec)