完整错误:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
docker-compose.xml
mysql:
image: mysql:8.0
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- 3306:3306
env_file:
- ./.env
my.cnf
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
PHP版本是7.1
4 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
自己看文档解决了,新的验证方式Caching SHA-2
所以在my.cnf中加一句:
default_authentication_plugin=mysql_native_password
变成原来的验证方式即可
冉冉说
TA贡献1877条经验 获得超1个赞
这个问题是由于新的mysql账号密码解锁机制跟老的不兼容造成的。 你查一下你的用户,如果密码是16位的就是老账号了,要重新设一遍新的密码。
SELECT
Length(`Password`),
Substring(`Password`, 1, 1)
FROM
`mysql`.`user`
WHERE
`user`='你的用户名' // 根据设定,你可能要测试所有的用户
皈依舞
TA贡献1851条经验 获得超3个赞
在my.cnf设置任何用户登录都可以获得全部的权限
在[mysqld]的段中加上一句:skip-grant-tables 然后重启mysql然后执行修改密码的sql:
UPDATE user SET Password = password ('new-password') WHERE User = 'root';
flush privileges;再次重启mysql,这下应该就好了
- 4 回答
- 0 关注
- 1107 浏览
添加回答
举报
0/150
提交
取消
