MySQL 远程连接账户无法访问数据库: init_connect 错误的引号类型导致连接失败?
在 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 账户就可以成功远程登录并访问指定的数据库了。
以上就是MySQL 远程连接账户无法访问数据库: init_connect 错误的引号类型导致连接失败?的详细内容,更多请关注其它相关文章!