我有一个连接到本地MySQL实例的Symfony 4应用程序。它在应用程序中以及在使用控制台命令进行指导时都运行良好。突然,即使我的数据库配置没有任何变化(并且我的mysql实例正在运行),我仍收到此错误:
SQLSTATE [HY000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:NO)
当我跑步时:
php bin / console准则:schema:update --force
但是,我在应用程序中的连接非常正常!一个小时前,同一条命令就完全正常了。我知道已经有很多关于此问题的问题,但答案不适用于我。我现在承受着时间上的压力来完成一个项目,这使我发疯。
这是我的.env配置:
DB_USER=root
DB_PASSWORD=root
DB_HOST=localhost
DB_PORT=3306
DB_NAME=test DATABASE_URL=mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}
和我的doctrine.yaml配置如下:
parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
mapping_types:
enum: string
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
答案 0 :(得分:1)
我通过将doctrine.yaml中的字符集和排序规则更改为另一个更通用的utf8解决了这个问题。直到那时我才一直在更改它,并且在此之前它一直都可以使用,所以我不知道为什么它突然在应用程序的一部分中认为它不够好。