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

问题描述 投票:0回答:3

我不小心成功创建了一个数据库

symfony-project
,但它没有出现在我的 phpmyadmin 页面上。我想用

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

然后这条消息就出来了

无法删除名为 default 的连接的数据库

symfony-project
驱动程序中发生异常:SQLSTATE[HY000] [2002] 连接被拒绝

当我尝试使用

php bin/console doctrine:database:create
创建新数据库时,出现错误消息:

在 AbstractMySQLDriver.php 第 93 行:
驱动程序中发生异常:SQLSTATE[HY000] [2002] 连接被拒绝

在 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 服务器已消失

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

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

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

php mysql database symfony doctrine
3个回答
1
投票

我认为您也可以通过尝试创建数据库来尝试连接:

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
用户的密码。尽管如果一开始未指定密码,这可能不是问题,但最好重新检查这些凭据。


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


0
投票

php ini 文件可能有所不同,因此在项目目录终端上使用此命令

php --ini
> //此命令将为您提供项目 php ini 文件的方向,在我的情况下它是 C:\Program Files\php-8.2.9-Win32-vs16-x64\php.ini 在其他情况下它位于在 xamp/php 文件夹中 然后找到或搜索
extension=bz2
和 extension=pdo_mysql 确保它们都未注释。 heres what it looks like 确保在 config/doctrine.yaml 中定义数据库变量,如下所示

 doctrine:
#url: '%env(resolve:DATABASE_URL)%'
dbal:
  dbname:       database
  charset:      utf8
  user:         user
  password:     secret
  driver:       pdo_mysql

或者您也可以使用 .env 来定义数据库链接,方法是取消注释上述原则中的 url 字段,然后转到您的 .env 文件

DATABASE_URL="mysql://数据库用户名:[email protected]:3306/databasename?serverVersion=8.0.32&charset=utf8mb4"
确保所有参数都正确,否则您将收到来自 mysql 的拒绝访问错误。 从这里开始,所有教义命令都可以正常工作

© www.soinside.com 2019 - 2024. All rights reserved.