Mysql
在 Master 上創建使用者不會在 Slave 上創建
我們在兩個極光集群之間設置了 mysql 複製。一切看起來都很好,並且複制執行良好。但是,幾個小時前我在主伺服器上創建了一個使用者,但我仍然在從伺服器上看不到它。我看到 Aurora 不包括
mysql
可能是問題的架構。但我不知道我是否應該自己創建使用者或什麼。MySQL [(none)]> show replica status\G *************************** 1. row *************************** Replica_IO_State: Waiting for master to send event Source_Host: <rds-host>.rds.amazonaws.com Source_User: user Source_Port: port Connect_Retry: 60 Source_Log_File: mysql-bin-changelog.111 Read_Source_Log_Pos: 133216906 Relay_Log_File: relaylog.000548 Relay_Log_Pos: 133217133 Relay_Source_Log_File: mysql-bin-changelog.111 Replica_IO_Running: Yes Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: mysql.% Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 133216906 Relay_Log_Space: 133217380 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: 0 Source_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 58182133 Source_UUID: cdc9f787-fa44-376f-bceb-a16cd8c88c38 Source_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Replica_SQL_Running_State: Slave has read all relay log; waiting for more updates Source_Retry_Count: 86400 Source_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Source_SSL_Crl: Source_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: Source_TLS_Version: Source_public_key_path: Get_Source_public_key: 0 Network_Namespace:
在奴隸上:MySQL
$$ (none) $$> 從 mysql.user 中選擇使用者,其中 user=‘dms_u’;空集(0.00 秒) 在主人:
MySQL [(none)]> select user from mysql.user where user='dms_u'; +-------+ | user | +-------+ | dms_u | +-------+ 1 row in set (0.00 sec)
就我個人而言,我從不複製
mysql
架構,因為正如mysql 系統架構中特別提到的那樣:mysql 架構是系統架構。它包含儲存 MySQL 伺服器執行時所需資訊的表。您看不到 slave 上的使用者,因為您已經發現 * 我看到 Aurora 不包括 mysql 模式,這可能是問題*。
但我不知道我應該自己創建使用者還是什麼
取決於,如果您需要從站上的使用者,則創建它,否則不需要。
我們無法回答您是否應該在副本上創建相同的使用者。我們不知道您將如何使用該使用者。
以下是在副本上創建使用者的幾個範例,但這不是我的想法,不是完整的列表:
- 您的客戶使用該使用者
dms_u
,並且您希望他們能夠使用同一使用者在副本上執行查詢。- 您將使用使用者作為定義者來創建視圖或儲存的常式
dms_u
。如果您在源實例上執行此操作,但該使用者在副本實例上不存在,則 DDL 語句將導致錯誤並停止複制。這些適用於您的情況嗎?我猜不出來。