Saya percaya saya telah berjaya menggunakan tapak web saya (sangat asas) untuk fortrabbit, tetapi sebaik sahaja saya menyambung ke SSH, jalankan beberapa arahan seperti php artisan migrate
atau php artisan db:seed< ;/code>), saya akan menerima mesej ralat:
[PDOException] SQLSTATE[HY000] [2002] Tiada fail atau direktori sedemikian
Pada satu ketika, penghijrahan mesti berjaya kerana jadual saya wujud - 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 langkah pertama adalah untuk mengesahkan. Jika ia berfungsi, berikut adalah 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 menemui jawapan ini untuk masalah yang sama dan ia telah diselesaikan dalam siaran symfony2.https://stackoverflow.com/a/9251924
Kemas kini:Sesetengah orang bertanya mengapa pembetulan ini berkesan, jadi saya melakukan penyelidikan tentang isu itu. Seperti yang dijelaskan dalam siaran ini, mereka 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 bermaksud ia berjalan melalui "rangkaian tempatan" pada komputer anda dan lebih dipercayai daripada soket UNIX.
Mesej ralat menunjukkan percubaan untuk mewujudkan sambungan MySQL melalui soket (yang tidak disokong).
Dalam konteks Laravel (artisan) anda mungkin mahu menggunakan persekitaran yang berbeza/betul. Contohnya:
php artisan migrate --env=production
(atau mana-mana persekitaran lain). Lihatdi sini.