Laravel ialah rangka kerja PHP yang sangat popular yang boleh membantu kami membangunkan aplikasi web dengan lebih cepat dan cekap. Apabila menggunakan Laravel, kita mungkin menghadapi beberapa masalah Salah satu masalah yang lebih biasa ialah ketidakupayaan untuk menyambung ke pangkalan data.
Jadi, apabila anda menggunakan Laravel untuk menyambung ke pangkalan data dan anda tidak dapat menyambung, apakah yang perlu anda lakukan? Di bawah, kami akan menganalisis pelbagai aspek seperti konfigurasi pangkalan data dan pengurusan pakej pergantungan untuk membantu anda menyelesaikan masalah ini.
Pertama, kita perlu menyemak sama ada konfigurasi pangkalan data adalah betul. Dalam Laravel, kita boleh mencari item konfigurasi berkaitan pangkalan data dalam fail .config/database.php. Item konfigurasi ini termasuk jenis pangkalan data, nama hos, nama pangkalan data, nama pengguna dan kata laluan pangkalan data, dsb.
Sebagai contoh, berikut ialah contoh konfigurasi pangkalan data MySQL:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ],
Dalam konfigurasi di atas, kita dapat melihat bahawa fungsi env digunakan untuk mendapatkan pembolehubah persekitaran, yang membenarkan Kami menggunakan konfigurasi yang berbeza dalam persekitaran operasi yang berbeza. Jika anda menggunakan pangkalan data MySQL, maka anda perlu memastikan bahawa item konfigurasi berikut adalah betul:
Jika konfigurasi di atas betul, tetapi anda masih tidak boleh menyambung ke pangkalan data, anda boleh cuba akses pangkalan data, lihat Lihat jika terdapat masalah dengan pangkalan data itu sendiri.
Laravel menggunakan Komposer untuk pengurusan pakej pergantungan. Semasa membangunkan Laravel, kami mungkin menggunakan beberapa pakej pergantungan berkaitan pangkalan data, seperti pakej sambungan MySQL, dsb. Jika kami tidak memasang atau menaik taraf pakej pergantungan ini, kami mungkin tidak dapat menyambung ke pangkalan data. Oleh itu, kita perlu menyemak sama ada versi pakej pergantungan yang kita gunakan adalah betul.
Apabila menggunakan Composer untuk memasang atau mengemas kini pakej bergantung, anda boleh menggunakan arahan berikut untuk melihat maklumat versi pakej bergantung:
composer show
Jika kami mendapati bahawa versi tanggungan pakej tidak betul, anda boleh menggunakan arahan berikut Untuk menaik taraf pakej kebergantungan:
composer update
Apabila menyambung ke pangkalan data, kita perlu memilih kaedah sambungan yang betul. Dalam Laravel, kita boleh menggunakan dua kaedah berikut untuk menyambung ke pangkalan data:
Perbezaan utama antara keduanya kaedah sambungan ialah , sambungan PDO menggunakan sambungan PDO PHP untuk menyambung ke pangkalan data, manakala sambungan MySQLi menggunakan sambungan MySQLi untuk menyambung ke pangkalan data. Jika kita menggunakan sambungan MySQLi, maka kita perlu memastikan sambungan MySQLi dipasang.
Dalam fail .config/database.php, kita boleh mengkonfigurasi sambungan PDO dengan cara berikut:
'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ],
Dalam konfigurasi di atas, kita dapat melihat bahawa sambungan PDO menggunakan PDO sambungan, jika kita ingin menggunakan sambungan MySQLi, kita boleh mengubah suai pemacu kepada mysqli.
Akhir sekali, kita perlu menyemak sama ada kebenaran pengguna pangkalan data adalah betul. Apabila menyambung ke pangkalan data, kita perlu menggunakan pengguna MySQL dengan kebenaran yang sepadan Jika pengguna tidak mempunyai kebenaran yang sepadan, sambungan tidak akan dapat dilakukan.
Kami boleh menggunakan arahan berikut untuk melihat kebenaran pengguna semasa:
SHOW GRANTS FOR CURRENT_USER;
Jika kami mendapati bahawa pengguna tidak mempunyai kebenaran yang sepadan, kami boleh menggunakan arahan berikut untuk ubah suai kebenaran pengguna:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Antaranya, database_name mewakili nama pangkalan data, nama pengguna mewakili nama pengguna pangkalan data, dan localhost mewakili alamat pelayan MySQL, yang boleh diubah suai mengikut situasi sebenar.
Ringkasnya, apabila menggunakan Laravel untuk menyambung ke pangkalan data, jika sambungan gagal, kita perlu menyelesaikan masalah dalam masa dan menghapuskan masalah di atas satu demi satu. Saya percaya bahawa melalui analisis di atas, anda telah memahami kemungkinan sebab dan penyelesaian untuk kegagalan Laravel untuk menyambung ke pangkalan data.
Atas ialah kandungan terperinci Analisis ringkas penyelesaian kepada masalah bahawa pangkalan data laravel tidak dapat disambungkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!