SQLSTATE [HY000] [2005]未知的MySQL服务器主机' localhost:3306' (2)

时间:2014-12-06 05:44:42

标签: php mysql laravel

目前我在laravel面临上述问题。基本上这个项目是在mac OS x上设置的,目前我在Linux上工作。所以当我运行它是在浏览器上它给我的错误。我还更改了数据库文件中的数据库详细信息。但现在这个错误来了。那么请你告诉我如何解决它。

打开:/var/www/laravel-projects/wit/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);
}

由于

2 个答案:

答案 0 :(得分:4)

我相信5.5之前的php版本你会使用“localhost”(或者如果它不是同一个主机,运行mysql服务器的主机)的'host'参数。如果它是在5.5之后,我认为你需要使用“localhost:3306”(不一定是3306,这只是默认的mysql端口,所以如果你改变它会有所不同)。因此,如果您使用的是5.5之前的PHP版本,并且代码适用于版本5.5及更高版本,请尝试更改您的mysql连接器设置。猜它看起来像:

array(
        'host' => "localhost:3306",
        'username' => 'user',
        'password' => 'pass',
        'dbname' => 'database');
)

或许尝试将其更改为:

array(
            'host' => "localhost",
            'username' => 'user',
            'password' => 'pass',
            'dbname' => 'database');
    ) 

答案 1 :(得分:0)

PHP 5.6.33-0 + deb8u1(cli)(建立:2018年1月9日05:01:31) 适用于使用readline 6.3的debian-linux-gnu(armv8l)的mysql Ver 14.14 Distrib 5.5.60

对我来说解决方案是从我的配置文件中删除:3306。

<?php
        define('DB_SERVER', 'localhost');
        //instead of: define('DB_SERVER', 'localhost:3306');
        define('DB_USERNAME', 'mysql-user');
        define('DB_PASSWORD', 'password');
        define('DB_DATABASE', 'database_name');
...

谢谢您的帮助!