首页 > 解决方案 > Symfony 4 | 教义 | 驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied

问题描述

我已经阅读了与此问题相关的每篇文章,但似乎对我没有任何帮助。

我想使用以下命令创建一个数据库:

$ php bin/控制台原则:数据库:创建

错误是:

In AbstractMySQLDriver.php line 93:

  An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused  


In PDOConnection.php line 31:

  SQLSTATE[HY000] [2002] Connection refused  


In PDOConnection.php line 27:

  SQLSTATE[HY000] [2002] Connection refused  


doctrine:database:create [--shard SHARD] [--connection [CONNECTION]] [--if-not-exists] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

到目前为止我已经尝试过:

我的.env文件如下所示:

# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
DATABASE_URL=mysql://root:123@127.0.0.1:3306/myproject?serverVersion=10.4.11
###< doctrine/doctrine-bundle ###

我的学说.yaml文件如下所示:

doctrine:
    dbal:
        driver: pdo_mysql
        server_version: '10.4.11'

        url: '%env(resolve:DATABASE_URL)%'

我很感激任何帮助!

标签: phpsymfonydoctrine-orm

解决方案


这就是标准的doctrine.yaml 的样子(SF5.0!,Doctrine2.0)

//YOUR_NAMESPACE\config\packages\doctrine.yaml

doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'

        # IMPORTANT: You MUST configure your server version,
        # either here or in the DATABASE_URL env var (see .env file)
        server_version: '10.4'
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'YOUR_NAMESPACE\Entity'
                alias: YOUR_NAMESPACE

和 .env.local

DATABASE_URL=mysql://root:123@127.0.0.1:3306/myproject2

你的 composer.json 应该包含在 require 段中

"doctrine/doctrine-bundle": "^2.0",
"doctrine/doctrine-migrations-bundle": "2.1.*",
"doctrine/orm": "2.7.*",

在你的学说迁移.yaml

//YOUR_NAMESPACE\config\packages\doctrine_migrations.yaml

doctrine_migrations:
    dir_name: '%kernel.project_dir%/src/Migrations'
    # namespace is arbitrary but should be different from App\Migrations
    # as migrations classes should NOT be autoloaded
    namespace: DoctrineMigrations

推荐阅读