MySQL Error number: MY-010088; Symbol: ER_CREDENTIALLESS_AUTO_USER_BAD; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-010088; Symbol: ER_CREDENTIALLESS_AUTO_USER_BAD; SQLSTATE: HY000
Message: ‘NO_AUTO_CREATE_USER’ sql mode was not set.
MY-010088; ER_CREDENTIALLESS_AUTO_USER_BAD; HY000 错误描述
这是MySQL的一个错误代码,由于not allowed to be without both user and host in credentials抛出。只有在进行客户端访问MySQL服务器时,才会出现这个错误。它意味着MySQL服务器没有开放免认证的权限给用户,所以这导致用户不能够通过MySQL服务器连接。
常见案例
当一个用户试图用MySQL root用户登录MySQL服务器而不能成功时,很可能会遇到这个错误。另一种情况是,当用户试图用MySQL root用户创建数据库但却未能成功时,也可能会遇到此错误。此外,在运行GRANT语句时,无法正常获取用户权限,也可能导致不允许使用MySQL root无证书自动用户的错误。
解决方法
要解决这个问题,首先需要打开MySQL服务器的认证模式,以允许MySQL root用户仅通过用户名和密码而不带证书进行访问。如果MySQL服务器的安全设置不允许让用户没有证书进行访问,则必须彻底更改MySQL服务器上安全设置的认证模式,以允许特定的用户在没有带证书的情况下访问MySQL。需要将MySQL服务器上的如下环境变量设置为0或1:
imlicit_default_role_host这个环境变量可以设置为0或1。如果设置为0,则表示MySQL root用户需要用户名和密码以及hostname来完成认证。如果设置为1,则表示只需要用户名和密码即可(无需带证书)认证。
其次,您还需要确保MySQL服务器上安装了SSL模块,并且为root用户安装了一个MySQL SSL证书。只有这样,服务器才有资格接受SSL连接,并且用户才能以SSL方式与MySQL服务器通信。最后,您可以使用MySQL语句GRANT来设置MySQL root用户访问权限,让其可以操作MySQL服务器上的数据库。