儘管授予了遠端權限,但對MySQL 伺服器的遠端存取嘗試失敗並出現存取被拒絕錯誤給使用者。
要在MySQL 5.6 及更低版本中接受遠端連接,請確保/etc/mysql/my.cnf 中取消註解以下行:
#Replace xxx with your IP Address bind-address = xxx.xxx.xxx.xxx
或者,使用bind-address = 0.0.0.0允許任何IP連接。
對於 MySQL 5.7 以上版本,修改綁定位址在 /etc/mysql/mysql.conf.d/mysqld.cnf 中。
重新啟動 MySQL 並使用 lsof -i -P | 驗證更新後的綁定位址正規表示式:3306。它應該會傳回您伺服器的 IP 位址。
在本機和 %中建立具有適當權限的遠端使用者:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
授予必要的權限:
GRANT ALL ON *.* TO 'myuser'@'localhost'; GRANT ALL ON *.* TO 'myuser'@'%';
最後,刷新權限和exit:
FLUSH PRIVILEGES; EXIT;
如果不成功,請檢查其他錯誤訊息或檢查my.cnf 配置。如果 lsof 不可用,請考慮安裝 lsof 進行故障排除。
如果my.cnf 中的綁定位址變更無法解決問題,請嘗試在/etc/mysql/ 中修改它mariadb.conf.d/50-server.cnf,最初聲明的地方。
以上是為什麼無法在 Ubuntu 上遠端存取 MySQL 伺服器,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!