MySQL 執行 flush privileges 後設定消失

今天在做 DB 權限設定,看起來一切正常

1

結果執行 flush privileges 後,密碼與權限設置都消失。

2

重試過幾次都沒有用,結果使用 % 或是特定的 IP 位址結果正常。

檢查一下設定,發現有 skip-name-resolve 這個設定。

1
2
3
4
[mysqld]
skip-name-resolve
skip-external-locking
bind-address = 0.0.0.0

查詢 MariaDB 官方文件,這個功能是跳過名稱解析,可以加快連線速度。

skip_name_resolve

  • Description: If set to 1 (0 is the default), only IP addresses are used for connections. Host names are not resolved. All host values in the GRANT tables must be IP addresses (or localhost).
  • Commandline: –skip-name-resolve
  • Scope: Global
  • Dynamic: No
  • Data Type: boolean
  • Default Value: 0

這個設定在連線數量少,頻率低的地方幾乎是沒作用,而且當開啟了這個設定,就算是寫在 /etc/hosts 設定他也不會解析,這樣會產生一些問題,為了管理方便拿掉比較好。

拿掉後重新啟動 Server 就解決了。

comments powered by Disqus