Symfony控制台原则:schema:update --force SQLSTATE [HY000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:NO)

时间:2018-12-18 20:31:54

标签: php mysql symfony doctrine

我有一个连接到本地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

1 个答案:

答案 0 :(得分:1)

我通过将doctrine.yaml中的字符集和排序规则更改为另一个更通用的utf8解决了这个问题。直到那时我才一直在更改它,并且在此之前它一直都可以使用,所以我不知道为什么它突然在应用程序的一部分中认为它不够好。