无法删除名为默认连接的数据库`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]连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章