本文實例講述了Laravel執(zhí)行migrate命令提示:No such file or directory的解決方法。分享給大家供大家參考,具體如下:
今天使用Laravel命令行工具操作數(shù)據(jù)庫遷移操作時報錯,提示mysql 2002錯誤,如圖:
查看數(shù)據(jù)庫配置沒錯呀,網(wǎng)站前臺也可以打開,說明能連上,那是什么原因呢?
在Laravel5中,有兩種辦法解決:
1.增加一個數(shù)據(jù)庫配置項
1
2
3
4
5
6
7
8
9
10
11
12
|
'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環(huán)境,路徑是/Applications/MAMP/tmp/mysql/mysql.sock,查看自己路徑的辦法是在mysql中輸入以下命令就可以看到:
show variables like '%sock%';
如下圖所示:
2.修改.env配置
這個辦法只能是臨時修改,讓migrate可以執(zhí)行,然后必須改回來。
1
2
3
4
5
6
|
DB_HOST=localhost DB_CONNECTION=mysql DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=tanteng DB_PORT=8889 |
臨時修改辦法是把DB_HOST那里改成localhost:8889,也就是把端口號加上,再使用Laravel5的artisan命令執(zhí)行migrate操作就可以了,但是操作完了要改回以前的寫法,否則網(wǎng)站前臺頁面會打不開連不上數(shù)據(jù)庫,提示錯誤:SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhost:8889' (0)
好了,這樣就解決了使用Laravel5的migrate報錯的問題。
轉自:小談博客 http://www.tantengvip.com/2015/12/laravel-migrate-mysql-2000/
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。