Rumah > Artikel > pembangunan bahagian belakang > Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?
Penyelesaian kepada ralat PHP apabila menyambung ke mysql8: 1. Matikan komen di hadapan "mysql_native_password" dalam "/etc/my.cnf"; 2. Masukkan mysql dan kemas kini kata laluan dengan "mysql_native_password" Itu ia.
Persekitaran pengendalian tutorial ini: Sistem CentOS 7, versi mysql8, komputer DELL G3
Apakah yang perlu saya lakukan jika PHP melaporkan ralat walaupun dengan mysql8?
Penyelesaian kepada kegagalan sambungan PHP ke MYSQL8
Seorang pelajar dalam kumpulan itu berkata pada waktu malam php
ia meletup dan tidak keluar selama dua jam.
Tidak kira bagaimana anda melihatnya, tiada masalah, tetapi sambungannya tetap gagal.
memintanya untuk menambah mysqli_error()
tetapi tiada output saya melihat pada komponen yang berkaitan dengan PHP dan melihat log mysql
tetapi tiada respons Memandangkan ia adalah hos awan, saya juga cuba menukar localhost
kepada 127.0.0.1
Masih tidak berjaya.
Kemudian saya menyemak versi mysql
, mysql8
, ia terlalu sukar untuk orang yang masih menggunakan mysql5
, jadi saya menyemak status kemas kini mysql8
, jadi saya Anak itu memilihnya naik, haha.
Ringkasnya, dalam mysql8
, kaedah pengesahan baharu caching_sha2_password
muncul Kaedah ini menjadi mekanisme pengesahan baharu Secara lalai, kata laluan dikonfigurasikan Ia juga telah diproses dengan cara ini, dan mysql_native_password
asal telah diganti. Itulah sebabnya php
tidak dapat menyambung.
Untuk maklumat terperinci, sila lihat pautan ini: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password
1 /etc/my.cnf
), matikan ulasan sebelum centos
. Iaitu, tukar kembali kepada kaedah pengesahan lama: mysql_native_password.
[mysqld] default_authentication_plugin=mysql_native_password2. Masukkan
dan kemas kini kata laluan menggunakan mysql
. mysql_native_password
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; mysql>flush privileges;Atau anda boleh menambah pengguna baharu.
mysql>CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; mysql>GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'; mysql>flush privileges;Masalah berjaya diselesaikan.
Maka ini tidak sia-sia, jadi Saya menggunakan php
Kaedah itu pasti boleh diselesaikan, jadi saya melihat sekali lagi dan mendapati sesuatu. php
yang boleh disokong, tetapi sebelum mysql_xdevapi
tidak php7.2.4
mahupun php PDO
boleh menyokong kaedah pengesahan baharu. php mysqli
Tutorial Video PHP"
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!