Symfony 4 |教义 |驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied

Posted

技术标签:

【中文标题】Symfony 4 |教义 |驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied【英文标题】:Symfony 4 | Doctrine | An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused 【发布时间】:2020-08-07 08:37:35 【问题描述】:

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

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

$ php bin/console 学说:数据库:创建

错误是:

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>

到目前为止我所尝试的:

我已经更新了服务器版本 我把 127.0.0.1 改成了 localhost 我在 phpmyadmin 中创建了一个新用户

我的 .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 ###

我的 doctrine.yaml 文件如下所示:

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

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

感谢您的帮助!

【问题讨论】:

您是否尝试使用命令行使用您的凭据 root:123 登录数据库?例如 mysql -u 用户名 -p Mac 和 linux 在命令行上非常相似。首先尝试 mysql -v ...应该会出现版本号。然后 mysql -uroot -p ...你会被要求输入密码 通常mysql链接在PATH中...所以你可以从任何地方访问它。不需要 ./ 背后的想法...如果您可以通过命令行上的凭据访问数据库,则该错误需要更多调查。但是我确实希望通过您的凭据登录会出现问题,这是您确定的方式:-) 版本为:mysql Ver 15.1 Distrib 10.4.11-MariaDB, for Linux (x86_64) using readline 5.1 【参考方案1】:

这就是标准的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.*",

在你的学说_migrations.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

【讨论】:

以上是关于Symfony 4 |教义 |驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied的主要内容,如果未能解决你的问题,请参考以下文章

当 Symfony 教义对象的一个​​属性发生变化时更新另一个属性

Symfony3.4 / Doctrine迁移 - 驱动程序中发生异常:SQLSTATE [HY000] [2002]没有这样的文件或目录

测试 Symfony 包:找不到教义.orm.entity

Symfony 4,Postgres - 在运行教义命令时`参数“client_encoding”的无效值:“utf8mb4”`

如何使用 symfony 在教义查询构建器中选择表之间的特定连接?

Symfony:驱动程序发生异常:找不到驱动程序