MYSQL服务端直接命令链接正常,本地客户端无法链接,报错1045

可以去参考这个文章:https://opensource.actionsky.com/20190715-mysql/

补充

不知道是我的键盘原因还是怎么样,mysql的sql语句直接再SSH链接的时候本地测试写会出现有些内容(尤其是密码部分)写错,然后一不小心又保存刷新了,造成这样会造成本地访问远端数据库的时候定位到一个错误的地址,因此我们获取密码用户信息和host信息。

SELECT Host, User,password FROM mysql.user WHERE User='root';

访问得到结果,会发现Host列表中的%地址没有配置PASSWORD,导致外部无法访问。

这个时候需要重置%(也就是外部任意访问)的密码。

set password for 'root'@'%' = '你的mysql密码';

大概率接下来会遇到这个错误:ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number,是因为set password因为版本机制的问题不允许直接输入密码,而是需要使用mysql命令行:select password(‘密码’); ,查询密码对应的十六进制码,然后使用十六进制码进行修改则可以解决。

最后,别忘记刷新缓存。

flush privileges;

这个错误还有可能是centOS 7系列yum安装Mariadb(开源版本mysql)并且执行了自动配置root用户名称的关系,会导致%外部访问无法访问,而即使在测试设置中也无济于事。

分类: MySQL数据库

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注