【问题标题】:Laravel PDO Exception - php artisan migrateLaravel PDO 异常 - php artisan migrate
【发布时间】:2016-11-24 03:54:50
【问题描述】:

[PDOException]
SQLSTATE[HY000] [2002] Connection refused

我在尝试执行“php artisan migrate”时收到此错误。我已经检查了端口和所有内容的所有设置。我的问题和这个问题一样:

Connection MySQL with PDO PHP

但我看到它没有解决。我什至尝试过使用这个脚本:

https://ardamis.com/2008/05/26/a-php-script-for-testing-a-mysql-database-connection/

但那里也没有运气。只是一个空白页。

有什么想法吗?

【问题讨论】:

  • 我在 database.php 文件中添加了 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',但也没有成功。但是我进入了我电脑上的那个文件夹,我没有那个文件。只有mysql.pid。我可以添加一个 mysql.sock 文件还是在其他地方?
  • mysql 正在运行吗?你可以在命令行上运行mysql 吗?如果它让您访问被拒绝,请尝试mysql -u <username> -p。如果它给你Can't connect to local MySQL server through socket,那么mysql没有运行。
  • 是的,它正在运行。我也可以访问 phpmyadmin 并自己创建数据库和表

标签: php mysql laravel pdo artisan-migrate


【解决方案1】:

其中的技巧可能是您使用的是“127.0.0.1”而不是“localhost”。我遇到过这样的问题,尤其是在为“localhost”创建用户然后尝试连接到 IP 时。

这就是我的 PDO 连接的样子:

$hostname = 'localhost';
$username = '';
$password = '';
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=DB", $username, $password);

附带说明,Damien 遇到的文件问题可能不适用于您的问题,因为他在问题中描述了两个问题,并且在尝试“localhost”而不是 IP 时,他克服了第一个错误。

【讨论】:

  • 谢谢费尔南多。我认为这是最初的问题,但我已将其更改为 localhost,但仍然没有运气。我刚刚重新启动了 Apache 服务器,并且该错误消失了,但现在出现了一个不同的错误,它无法找到文件或目录。我认为这与 mysql.sock 文件有关,但还不确定如何解决。
【解决方案2】:

好的,不确定这是如何解决的,但现在可以正常工作了。我将它从“127.0.0.1”更改为“localhost”,原来的错误就消失了。但是我又遇到了一个错误:

 [PDOException]                                    

SQLSTATE[HY000] [2002] 没有这样的文件或目录

通过阅读其他线程,我尝试将其更改回 127.0.0.1 并重新启动 Apache 服务器,现在它正在工作。感谢您的帮助!

【讨论】:

    【解决方案3】:

    我在使用 laravel 框架时也遇到了同样的问题,您需要做的就是关闭所有 apache 服务器和 mysql 并关闭 laravel 并首先启动您的 apache 服务器和 mysql,然后通过控制台 php artisan serve 并查看魔术问题已解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-09
      • 2020-05-01
      • 2016-05-14
      • 2020-10-23
      • 2021-01-05
      • 2018-08-04
      • 2017-04-06
      • 2016-10-14
      相关资源
      最近更新 更多