【问题标题】:SQLSTATE[HY000] [2005] Unknown MySQL server host 'mysql1.alwaysdata.com:3306' (2)SQLSTATE[HY000] [2005] 未知的 MySQL 服务器主机 'mysql1.alwaysdata.com:3306' (2)
【发布时间】:2014-05-30 13:10:46
【问题描述】:

当我尝试访问我的项目的某些网页时遇到此错误SQLSTATE[HY000] [2005] Unknown MySQL server host 'mysql1.alwaysdata.com:3306' (2)

alwaysdata 是我用于数据库的 phpmyadmin 网站

我注意到,当我尝试访问与数据库相关的某些页面时(例如创建用户......等),而其他页面(如“联系人”)没有问题。

我在 mac OSX 上,我使用 MAMP 服务器、总是数据、laravel 和 netbeans IDE。在我的项目和数据库之间建立连接所需的所有配置都是正确的。

这里是:

SQLSTATE[HY000] [2005] Unknown MySQL server host 'mysql1.alwaysdata.com:3306' (2)

打开: /Applications/MAMP/htdocs/lesenfantsdurhone/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php

 */
public function createConnection($dsn, array $config, array $options)
{
    $username = array_get($config, 'username');

    $password = array_get($config, 'password');

    return new PDO($dsn, $username, $password, $options);
}

如果有人有想法...

谢谢。

【问题讨论】:

标签: php mysql laravel-4


【解决方案1】:

端口号是own parameter in the DSN:

'mysql:host=mysql1.alwaysdata.com;port=3306;dbname=xxx'

或者只是省略端口,3306 是默认端口。

【讨论】:

  • 谢谢,其实我只是去掉 `'mysql' => array( 'driver' => 'mysql', 'host' => 'mysql1.alwaysdata.com:3306', ),。但是,我问我为什么它现在可以工作,3306 是默认端口。
  • 我的 PDO 连接有同样的问题。愚蠢的部分是它在我的 Windows 机器上本地工作,但它在我的 Ubuntu 开发服务器上被轰炸了。从字符串中删除端口解决了它,因为它只是使用默认的 mysql 端口。
【解决方案2】:

我在将 Laravel 与 MAMP 和 Sequal Pro 一起使用时遇到了这个问题。

.env 文件中,我设置了

DB_HOST = "localhost"
DB_PORT = "3306"

这行得通。

以前,我有

DB_HOST = "localhost:8889"

【讨论】:

    【解决方案3】:

    由于我的 Virtualbox 上的时间关闭导致 DNS 服务失败,我不断收到此错误 - 例如,在您让主机进入睡眠状态后,它就会发生这种情况。

    希望这对处于类似情况的人有所帮助。

    【讨论】:

      【解决方案4】:

      就我而言,我在“.env”文件中对 DB_HOST 变量进行了双重定义 第一个是正确的:DB_HOST=127.0.0.1

      最后一个是 DB_HOST=127.0.0.1:3306 带有不需要的 3306

      这就是原因。

      【讨论】:

        猜你喜欢
        • 2015-02-04
        • 2016-11-01
        • 2016-10-28
        • 2014-10-28
        • 1970-01-01
        • 2015-06-16
        • 2022-08-22
        • 1970-01-01
        相关资源
        最近更新 更多