查了下,出现这个错误的原因是从mysql 5.6开始,mysql密码加密算法更改了。
我装的mysql 8.* ,那么有两种解决方法:
- mysql 版本选择 <= 5.6
- 修改密码
docker-comopse exec mysql bash mysql -uroot -psecret alter user `db_user`@'%' identified with mysql_native_password by 'db_password'; flush privilefes;
解决。
2018-12-5 update:
PS:Laravel中的.env设置的是:DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=db_name DB_USERNAME=db_user DB_PASSWORD=db_pwd
DB_HOST 是docker 中mysql container 名字。
DB_PORT 是mysql container 内部端口