MySQL8 无法使用 root 账户在外部登录的解决办法
新安装的最新版本 MySQL,可以在服务器终端登录 root 账户,但是外部始终登录不上,报连接拒绝错误
1 | mysqli::real_connect(): (hy000/1698): access denied for user 'root'@'localhost' |
这时突然想到我一直用的初始密码,可能是 root 账户用的 auth_socket
认证,于是终端登录进去一看,果然是这样 (事实上 root 都还没设置密码)
知道原因就很简单了,直接修改 root 的密码和认证插件
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'xxxxxx'; |
caching_sha2_password
和 sha256_password
都是使用 SHA-256 哈希认证,只是前者会使用缓存来获取更好的性能