I use a Docker web stack for Symfony 4 project. MySQL configuration is :
mysql:
image: mysql
container_name: sf4_mysql
volumes:
- .docker/data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: ***
MYSQL_USER: ***
MYSQL_PASSWORD: ***
The pulled image from Docker Hub is MySQL 8 and when I tried to create database with doctrine:database:create I received this message :
2018-09-17T11:53:51+00:00 [error] Error thrown while running command "doctrine:database:create". Message: "An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested authentication me
thod unknown to the client"
In AbstractMySQLDriver.php line 126:
An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
In PDOConnection.php line 50:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
In PDOConnection.php line 46:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
In PDOConnection.php line 46:
PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]
解决方案
just update your docker-compose file as given below and rebuild the image.
mysql:
image: mysql
command: --default-authentication-plugin=mysql_native_password
container_name: sf4_mysql
volumes:
- .docker/data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: ***
MYSQL_USER: ***
MYSQL_PASSWORD: ***