Docker mysql 连接 “The server requested authentication method unknown to the clien”错误

查了下,出现这个错误的原因是从mysql 5.6开始,mysql密码加密算法更改了。

我装的mysql 8.* ,那么有两种解决方法:

  1. mysql 版本选择 <= 5.6
  2. 修改密码
    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 内部端口