Saya percaya saya telah berjaya menggunakan tapak (sangat asas) saya untuk fortrabbit, tetapi sebaik sahaja saya menyambung ke SSH untuk menjalankan beberapa arahan (seperti php artisan migrate
或 php artisan db:seed
) saya mendapat mesej ralat:
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
Pada satu ketika, penghijrahan mesti berjaya kerana jadual saya ada di sana - tetapi itu tidak menjelaskan mengapa ia tidak berfungsi untuk saya sekarang.
Salah satu sebab paling mudah untuk ralat ini ialah pelayan MySQL tidak berjalan. Jadi semak dulu. Jika sudah bermula, teruskan dengan cadangan lain:
Saya mengalami masalah yang sama. Tiada penyelesaian di atas berfungsi untuk saya. Saya menyelesaikan masalah dengan menukar "Host" dalam fail /app/config/database.php daripada "localhost" kepada "127.0.0.1".
Tidak pasti mengapa "localhost" tidak berfungsi secara lalai, tetapi saya mendapati jawapan ini dalam masalah yang sama diselesaikan dalam siaran symfony2. https://stackoverflow.com/a/9251924
Kemas kini: Sesetengah orang bertanya mengapa pembetulan ini berfungsi, jadi saya melakukan penyelidikan tentang topik tersebut. Seperti yang dinyatakan dalam siaran ini, mereka nampaknya menggunakan jenis sambungan yang berbeza https://stackoverflow.com/a/9715164
Masalah di sini ialah "localhost" menggunakan soket UNIX dan tidak dapat mencari pangkalan data dalam direktori standard. Walau bagaimanapun, "127.0.0.1" menggunakan TCP (Transmission Control Protocol), yang pada asasnya bermakna ia berjalan melalui "internet tempatan" pada komputer anda dan jauh lebih dipercayai daripada soket UNIX dalam kes ini.
Mesej ralat menunjukkan percubaan untuk menyambung ke MySQL melalui soket (tidak disokong).
Dalam konteks Laravel (artisan) anda mungkin mahu menggunakan persekitaran yang berbeza/betul. Contohnya:
php artisan migrate --env=product
(atau mana-mana persekitaran). Lihat di sini.