我不小心成功创建了一个数据库
symfony-project
,但它没有出现在我的 phpmyadmin 页面上。我想用 删除数据库
php bin/console doctrine:database:drop --force
然后这条消息就出来了
无法删除名为 default 的连接的数据库
驱动程序中发生异常:SQLSTATE[HY000] [2002] 连接被拒绝symfony-project
当我尝试使用
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 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
用户的密码。尽管如果一开始未指定密码,这可能不是问题,但最好重新检查这些凭据。
您必须配置您的 doctrine.yaml
doctrine:
dbal:
dbname: database
charset: utf8
user: user
password: secret
driver: pdo_mysql
检查文档:https://symfony.com/doc/current/reference/configuration/doctrine.html
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 确保它们都未注释。
确保在 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 的拒绝访问错误。
从这里开始,所有教义命令都可以正常工作