本文實例講述了Laravel執行migrate命令提示:No such file or directory的解決方法。分享給大家供大家參考,具體如下:
今天使用Laravel命令行工具操作數據庫遷移操作時報錯,提示mysql 2002錯誤,如圖:
查看數據庫配置沒錯呀,網站前台也可以打開,說明能連上,那是什麼原因呢?
在Laravel5中,有兩種辦法解決:
1.增加一個數據庫配置項
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock', 'prefix' => 'laravel_', 'strict' => false, ],
這裡增加的一項是unix_socket,本機Mac上裝的MAMP環境,路徑是/Applications/MAMP/tmp/mysql/mysql.sock,查看自己路徑的辦法是在mysql中輸入以下命令就可以看到:
show variables like '%sock%';
如下圖所示:
2.修改.env配置
這個辦法只能是臨時修改,讓migrate可以執行,然後必須改回來。
DB_HOST=localhost DB_CONNECTION=mysql DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=tanteng DB_PORT=8889
臨時修改辦法是把DB_HOST那裡改成localhost:8889,也就是把端口號加上,再使用Laravel5的artisan命令執行migrate操作就可以了,但是操作完了要改回以前的寫法,否則網站前台頁面會打不開連不上數據庫,提示錯誤:SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhost:8889' (0)
好了,這樣就解決了使用Laravel5的migrate報錯的問題。
轉自:小談博客 http://www.tantengvip.com/2015/12/laravel-migrate-mysql-2000/
更多關於Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基於Laravel框架的PHP程序設計有所幫助。