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