无法删除名为default的连接的数据库“symfony-project”驱动程序中出现异常:SQLSTATE[HY 000] [2002]连接拒绝

4c8rllxm  于 2023-10-24  发布在  其他
关注(0)|答案(3)|浏览(103)

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

php bin/console doctrine:database:drop --force

然后这个信息就出来了
无法删除名为default的连接的数据库symfony-project驱动程序中发生异常:SQLSTATE[HY 000] [2002]连接拒绝
当我尝试使用php bin/console doctrine:database:create创建一个新的数据库时,会出现一条错误消息:
在AbstractMySQLDriver.php行93:
驱动程序中发生异常:SQLSTATE[HY 000] [2002]连接被拒绝
在PDOConnection.php行31:
SQLSTATE[HY 000] [2002]连接拒绝
在PDOConnection.php行27:
SQLSTATE[HY 000] [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[HY 000] [2006] MySQL服务器已关闭
在PDOConnection.php行31:
SQLSTATE[HY 000] [2006] MySQL服务器已消失
在PDOConnection.php行27:
SQLSTATE[HY 000] [2006] MySQL服务器已消失
在PDOConnection.php行27:
PDO::__construct():MySQL服务器已经关闭

bbmckpt7

bbmckpt71#

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

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

jfgube3f

jfgube3f2#

你必须配置你的doctrine.yaml

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

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

q5lcpyga

q5lcpyga3#

php.ini文件可能会有所不同,因此在项目目录终端上使用以下命令:
php --ini
这个命令将给予指向你的项目php.ini文件的方向。在我的例子中,它是C:\Program Files\php-8.2.9-Win32-vs16-x64\php.ini,在其他情况下,它位于xamp/php文件夹中。
然后定位或搜索extension=bz2extension=pdo_mysql。确保它们都未注解。
Here's what it looks like
确保在config/doctrine.yaml中定义db变量,如下所示:

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

或者你也可以使用你的.env来定义数据库链接,方法是取消注解上面doctrine中的url字段,然后转到你的.env文件。

DATABASE_URL="mysql://databaseusername:[email protected]:3306/databasename?serverVersion=8.0.32&charset=utf8mb4"`

确保所有的参数都是正确的,否则你会从mysql得到拒绝访问的错误。从这里开始,所有的原则命令都可以正常工作。

相关问题