Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

藏色散人
藏色散人asal
2023-01-18 10:28:013621semak imbas

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.

Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

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

Masalah 0x01

Seorang pelajar dalam kumpulan itu berkata pada waktu malam php ia meletup dan tidak keluar selama dua jam.
Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

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.

Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

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

Penyelesaian 0x02

1 /etc/my.cnf), matikan ulasan sebelum centos. Iaitu, tukar kembali kepada kaedah pengesahan lama: mysql_native_password.

[mysqld]
default_authentication_plugin=mysql_native_password
2. 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.

0x03 Susulan

Setelah memikirkannya, saya tidak boleh menggunakan kaedah pengesahan baharu jika saya menggunakan

Maka ini tidak sia-sia, jadi Saya menggunakan php Kaedah itu pasti boleh diselesaikan, jadi saya melihat sekali lagi dan mendapati sesuatu. php
Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

Memang terdapat komponen baharu

yang boleh disokong, tetapi sebelum mysql_xdevapi tidak php7.2.4 mahupun php PDO boleh menyokong kaedah pengesahan baharu. php mysqli
Apakah yang perlu saya lakukan jika php menyambung ke mysql8 dan melaporkan ralat?

Memandangkan masalah telah selesai, saya tidak akan mencuba kaedah ini lagi Sila cuba lagi apabila ia digunakan pada masa hadapan dan rekodkannya!

Pembelajaran yang disyorkan: "

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn