2013-06-03 73 views
1
php artisan migrate:install 

{"error":{"type":"ErrorException","message":"PDO::__construct(): [2002] Connection refused (trying to connect via tcp:\/\/127.0.0.1:3306)","file":"\/Applications\/MAMP\/htdocs\/DRCSports\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connectors\/Connector.php","line":47}} 

在我database.php中我已經更新了信息到mysqlLaravel 4遷移:安裝ErrorException

'mysql' => array(
     'driver' => 'mysql', 
     'host'  => '127.0.0.1', 
     'database' => 'Laravel_DRCSports', 
     'username' => 'root', 
     'password' => 'root', 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
    ), 

我不知道如果我理解正確的錯誤,但對我來說,它看起來像我laravel沒有連接到mysql的權利。如果是這種情況,我不知道如何解決它。

+0

看起來像PDO無法打開該主機的連接:ip。 你確定在127.0.0.1上有3306端口的mysql服務器嗎?你有沒有試圖telnet 這個主機,看看你是否能夠連接? –

+0

該端口不是3306,它是8888.我看到它將要連接到3306端口,我只是不確定在哪裏將其更改爲8888。 telnet 127.0.0.1 8888 嘗試127.0.0.1 ... 連接到本地主機。 轉義字符是'^]'。 H 5.5.9g; 0 | Br8?Sd〜m'xH @ G#tFmysql_native_password – Rachael

+0

只需添加到數組中:'port'=> 8888 –

回答

8

問題是mysql在端口8888上運行,而Laravel的默認端口值是3306(因爲它是mysql服務器的默認端口)。

解決的辦法是將'port'鍵添加到數組中(例如:'port'=> 8888),然後 完成這項工作。

0

我所遇到的問題(Laravel 4)當我用的MySQL比3306

瀏覽器運行的應用希望下面的應用程序/配置/數據庫的語法之外的端口上:

'mysql' => array(
     ... 
    'host' => 'localhost', 
    'port' => '8889', 
     ... 
) 

雖然命令行運行工匠預計的語法如下:

'mysql' => array(
     ... 
    'host' => 'localhost:8889', 
     ... 
) 

這裏描述的問題:
https://github.com/laravel/laravel/issues/1182

大多數文章建議使用Laravel的環境解決方法,但它會導致重複的配置文件,違反了DRY原則(不要重複自己),所以這裏的另一種選擇:

的app /配置的頂/ database.php中:

$my_hostname = 'localhost'; 
$my_port  = '8889'; 
$my_database = 'database'; 
$my_username = 'username'; 
$my_password = 'password'; 

if (App::runningInConsole()) {  // artisan runs from the command line 
    // change 'localhost' to 'localhost:8889' 
    $my_hostname = $my_hostname.':'.$my_port; 
} 

進一步回落:

'mysql' => array(
    'driver' => 'mysql', 
    'host'  => $my_hostname, 
    'port'  => $my_port, 
    'database' => $my_database, 
    'username' => $my_username, 
    'password' => $my_password, 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
), 

乾杯

-1

我想你可以解決添加應用程序/配置/數據庫裏面的語法下面的代碼這個問題:

'mysql' => array(
    ... 

    'pconnect' => 'TRUE', 
    ... 
) 
2

這是我做過什麼......在/app/config/app.php

'mysql' => array(
      'driver' => 'mysql', 
      'host'  => 'localhost:8889', 
      'database' => 'pic', 
      'username' => 'root', 
      'password' => 'root', 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 

     ), 

,並在PHP代碼的底部

'redis的'=>數組(

'cluster' => false, 

    'default' => array(
     'host'  => '127.0.0.1', 
     'port'  => 8888, 
     'database' => 0, 
    ), 

), 

它必須工作...

0

更改您的config/database.php和.env文件中的數據庫信息。

0

我做了這些改變和工作就像一個冠軍:

在database.php中

: 主機:本地主機:8889 端口:8889 和我MAMP有一個密碼,所以我有兩路,以把該密碼要麼在database.php文件中,要麼在。env文件我將密碼的值改爲了僞造,然後在.env文件中使用我的MAMP密碼 ,您可以在端口選項卡中看到MAMP在MAMP應用程序中的具體信息(MySQL之一)

0

請務必編輯「.env」文件的這一部分。

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=8889 
DB_DATABASE=blog 
DB_USERNAME=root 
DB_PASSWORD=root 

這對我有效。