Mariadb

Mariadb複製slave只能訪問information_schema db

  • May 13, 2021

我的主從設置工作正常,直到從屬設備斷電。現在我明白了

連接到 master ‘repl@10.0.0.1:50000’ 時出錯 - 重試時間:60

最大重試次數:86400

消息:使用者 ‘repl’@’localhost’ 的訪問被拒絕(使用密碼:是)

密碼沒有更改,我可以使用登錄到數據庫

slave-host$ mysql -h10.0.0.1 -P50000 --user=repl --password='secret'

但是,一旦登錄,我就看不到任何數據庫,除了information_schema. 嘗試use <my_db_name>給出拒絕訪問錯誤。

在主上

master-host: mysql> show grants for repl@localhost;
GRANT REPLICATION SLAVE ON *.* TO
 'repl'@'localhost' IDENTIFIED BY PASSWORD '*xxxxx'

我嘗試以各種組合重新授予訪問權限,FLUSH PRIVILEGESSTART/STOP SLAVE;我沒有得到任何結果。

NB。位於 10.0.0.1 的主機有一個到數據庫主機的 SSH 隧道設置,因此授予 forrepl@localhost是適當的,因為 master 將其視為本地流量。

主從都在:10.1.26-MariaDB-0+deb9u1

奇怪的。

修復似乎是更改密碼。

  1. 停止奴隸
  2. 更改repl主使用者的密碼。
  3. 在奴隸上:change master to master_password = 'new pass'
  4. 啟動奴隸

Mariadb 10.5 似乎將密碼儲存在另一個表 mysql.global_priv 以及 mysql.user 中。我在 global_priv 中沒有導致登錄問題的使用者。再次設置密碼解決了這個問題。似乎 global_priv 沒有從 master 複製,它包含數據庫轉換為副本之前的舊值。

我剛剛檢查了舊的 MariaDB 10.3,global_priv 不存在。

引用自:https://dba.stackexchange.com/questions/212415