在 mysql 中創建僅允許遠程訪問特定數據庫的賬戶,為何無法連接數據庫?
在遠程主機上創建用戶 auser 并授予其對特定數據庫 mydb 的所有權限后,該用戶卻無法遠程登錄。那么,導致此問題的潛在原因是什么?
根據錯誤信息,使用 navicat 登錄 auser 賬戶時,提示“2013 – 在查詢期間丟失與 mysql 服務器的連接”,表明建立連接時遇到問題。
深入調查發現,使用 mysql 命令行工具登錄 auser 賬戶后,會顯示“init_connect command failed”錯誤。這意味著在連接初始化過程中發生了問題。
在 linux 中,需要修改 /etc/my.cnf 文件中的 init_connect 變量的引號類型,將其由反引號(`)更改為單引號(’),如下所示:
修改前:
init_connect=`set collation_connection = utf8_unicode_ci` init_connect=`set names utf8`
修改后:
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8'
保存更改并重啟 mysql 服務后,auser 賬戶就可以成功遠程登錄并訪問指定的數據庫了。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END