2015-04-05 167 views
0

我剛剛創建了一個新的Laravel 5應用程序並編寫了一些遷移。每當我試圖運行php artisan migrate,我遇到了以下錯誤工匠在Laravel遷移5投擲PDOException

[PDOException]
SQLSTATE [HY000] [2002]無法通過socket連接到本地MySQL服務器'
在/ var/lib中/ MySQL的/的mysql.sock」(13)

我的數據庫配置是正確的

'mysql' => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_HOST', 'localhost'), //I also tried 127.0.0.1 
     'database' => env('DB_DATABASE', 'mydb'), 
     'username' => env('DB_USERNAME', 'myusername'), 
     'password' => env('DB_PASSWORD', 'mypassword'), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
    ], 

我使用LAMP堆棧,可這是問題Laravel 5?

回答

1

您可以修改數據庫配置(database.php)本

'mysql' => [ 
    'driver' => 'mysql', 
    'host'  => 'localhost, 
    'database' => 'YOUR DB NAME', 
    'username' => 'YOUR DB USERNAME', 
    'password' => 'YOUR DB PASSWORD, 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

或者你可以使用默認的.env.example文件中設置了.env文件

Laravel應用程序現在船,這在目前看起來像這樣:

APP_ENV=local 
APP_KEY=SomeRandomString 
DB_DATABASE=your_db_name 
DB_USERNAME=your_username 
DB_PASSWORD=your_db_password 

爲了使用此文件,只需複製它並命名警察y(新文件).env並輸入您的數據庫詳細信息。

.env文件應位於根文件夾中,如.env.example

注: - 不要重命名文件.env.example總是....創建一個新的.env

env('DB_DATABASE', 'default_value')採取的DB_DATABASE值從.env文件,如果沒有找到選擇默認的「DEFAULT_VALUE」。

+0

它解決了我的問題 – 2015-04-06 06:47:19

0

由於配置使用env(),您需要設置項目根目錄中找到的.env文件中的值。您作爲第二個參數傳遞的值是默認值,只有在.env文件中找不到特定鍵時纔會使用。所以.env數據庫部分是這樣的:

DB_HOST=localhost 
DB_DATABASE=mydb 
DB_USERNAME=myusername 
DB_PASSWORD=mypassword 

你可以閱讀更多關於Laravel如何處理在Configuration Docs enviroments。