我将Symfony 4项目使用Docker Web堆栈。 MySQL配置是:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/drilldown.js"></script>
<script src="http://blacklabel.github.io/grouped_categories/grouped-categories.js"></script>
<div id="container-main-bar"></div>
从Docker Hub提取的映像是MySQL 8,当我尝试使用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: ***
创建数据库时,收到此消息:
2018-09-17T11:53:51 + 00:00 [错误]运行命令“ doctrine:database:create”时引发错误。消息:“驱动程序中发生异常:SQLSTATE [HY000] [2054]服务器请求认证我 客户端未知”
在AbstractMySQLDriver.php第126行中:
驱动程序中发生异常:SQLSTATE [HY000] [2054]服务器请求了客户端未知的身份验证方法
在PDOConnection.php第50行中:
SQLSTATE [HY000] [2054]服务器请求了客户端未知的身份验证方法
在PDOConnection.php第46行中:
SQLSTATE [HY000] [2054]服务器请求了客户端未知的身份验证方法
在PDOConnection.php第46行中:
PDO :: __ construct():服务器请求了客户端[caching_sha2_password]未知的身份验证方法
答案 0 :(得分:1)
MySQL 8.0使用“可插入身份验证”-您可以按照以下步骤解决问题。
打开my.cnf并添加以下条目(然后重新启动MySQL)
[mysqld]
default_authentication_plugin = mysql_native_password
使用正确的8.0语法创建用户(您的MYSQL_USER名称)以生成密码(请参见下文)
通过mysql_native_password识别
冲洗小物件,然后重试。那应该可以解决问题。
答案 1 :(得分:1)
只需按照以下说明更新docker-compose文件并重建映像。
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: ***