无法删除名为默认连接的数据库`symfony-project`驱动程序中发生异常:SQLSTATE [HY000] [2002]连接被拒绝

Posted

技术标签:

【中文标题】无法删除名为默认连接的数据库`symfony-project`驱动程序中发生异常:SQLSTATE [HY000] [2002]连接被拒绝【英文标题】:Could not drop database `symfony-project` for connection named default An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused 【发布时间】:2020-06-04 09:14:24 【问题描述】:

我不小心成功创建了一个数据库symfony-project,但它没有出现在我的 phpmyadmin 页面上。我想用

删除数据库
php bin/console doctrine:database:drop --force

然后这条消息就出来了

无法删除名为默认连接的数据库symfony-project 驱动发生异常:SQLSTATE[HY000] [2002] Connection denied

当我尝试使用php bin/console doctrine:database:create 创建新数据库时,出现错误消息:

在 AbstractmysqlDriver.php 第 93 行: 驱动发生异常:SQLSTATE[HY000] [2002] Connection denied

在 PDOConnection.php 第 31 行: SQLSTATE[HY000] [2002] 连接被拒绝

在 PDOConnection.php 第 27 行: SQLSTATE[HY000] [2002] 连接被拒绝

由于连接被拒绝,我现在无法创建和删除任何数据库。

我在 .env 文件上的数据库 url 是

DATABASE_URL=mysql://root:@127.0.0.1:3306/symfony-project?serverVersion=5.7

我的密码是空的。

我尝试将127.0.0.1 更改为localhost,错误消息告诉我

没有这样的文件或目录。

我在 macOS 上使用 symfony 4 和 xampp

更新

我已经编辑了我的 config/packages/doctrine.yaml 文件。我评论了url: '%env(resolve:DATABASE_URL)%' 并添加了这个:

doctrine:
dbal:
    dbname: symfony-project
    charset: utf8
    host: 127.0.0.1
    port: 8080
    user: root
    password:
    driver: pdo_mysql

现在这条消息出来了

在 AbstractMySQLDriver.php 第 106 行: 驱动发生异常:SQLSTATE[HY000] [2006] MySQL server has gone away

在 PDOConnection.php 第 31 行: SQLSTATE[HY000] [2006] MySQL 服务器已消失

在 PDOConnection.php 第 27 行: SQLSTATE[HY000] [2006] MySQL 服务器已消失

在 PDOConnection.php 第 27 行: PDO::__construct(): MySQL 服务器已经消失

【问题讨论】:

愚蠢的问题,但你确定数据库真的存在吗?也许这就是连接被拒绝以及它没有在 phpmyadmin 中显示的原因。您是否尝试过从命令行连接到 mysql 并运行类似 SHOW DATABASES; 的查询 我尝试连接 mysql,结果显示上面的消息。之前我已经成功连接mysql并创建了数据库。我确定数据库存在,因为当我使用doctrine:database:create创建数据库时,它表明数据库创建成功。但是当我检查phpmyadmin页面时,数据库不存在。 @dbrumann 我已经通过 phpmyadmin 打开 mysql 并运行代码 SHOW DATABASES;。数据库symfony-project 不存在。 尝试密码“null”(不要使用引号) 【参考方案1】:

你必须配置你的 doctrine.yaml

doctrine:
  dbal:
      dbname:       database
      charset:      utf8
      user:         user
      password:     secret
      driver:       pdo_mysql

查看文档:https://symfony.com/doc/current/reference/configuration/doctrine.html

【讨论】:

sql的端口应该是3306,在你的doctrine.yaml中尝试把你的端口改成3306【参考方案2】:

我想你也可以通过尝试创建数据库来尝试连接:

php bin/console doctrine:database:create

如果你使用 Symfony 2,你需要使用:

php app/console doctrine:database:create

我在字符串中也看到了:

DATABASE_URL=mysql://root:@127.0.0.1:3306/symfony-project?serverVersion=5.7

您没有为root 用户指定密码。虽然如果一开始没有指定密码,这可能不是问题,但最好重新检查这些凭据。

【讨论】:

感谢您的回答。我尝试创建一个新数据库,但它仍然显示相同的消息。现在,我根本无法创建和删除任何数据库。顺便说一句,我使用的是 Symfony 4,我的 root 用户密码是空的。 如何检查我的用户的密码?我所知道的是我的用户没有任何密码。对不起,我的基本知识。 哎呀,刚刚发现你居然不能***.com/questions/4371/…。但是您可以根据该问题中的答案后的说明重置它。

以上是关于无法删除名为默认连接的数据库`symfony-project`驱动程序中发生异常:SQLSTATE [HY000] [2002]连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

sql默认数据库被删除,不能登入怎么办?

win10远程桌面保存的用户名无法删除干净?

DBCP2 - 何时从池中删除空闲连接

MySQL 5.7 新增默认账号 mysql.session和mysql.sys

电脑无线网不显示无法连接怎么办啊

XCTest:无法删除框架目标的用户默认数据