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 4,Postgres - 在运行教义命令时`参数“client_encoding”的无效值:“utf8mb4”`