Rumah > pembangunan bahagian belakang > masalah PHP > Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

藏色散人
Lepaskan: 2023-03-17 14:04:01
asal
5054 orang telah melayarinya

Penyelesaian kepada kegagalan untuk menyambung ke pangkalan data menggunakan php: 1. Buka fail konfigurasi php.ini, alih keluar koma bertitik komen di hadapan "extension=php_mysql.dll", dan nyatakan laluan mutlak " php_mysql.dll" melalui sambungan ; 2. Ubah suai fail konfigurasi my.ini mysql; 3. Ubah suai set aksara set data.

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer Dell G3.

Apakah yang perlu saya lakukan jika saya gagal menyambung ke pangkalan data menggunakan php?

Perangkap yang dihadapi oleh PHP apabila menyambung ke mysql (dengan penyelesaian, ujian peribadi berkesan)

Perangkap apabila PHP menyambung ke mysql

Persekitaran: win10 PHP5.48 Apache2.2 Mysql8.017

Instance sambungan PHP

<?php     $link = mysql_connect("localhost", "myuser", "mypasswd");
    #myuser: 用户名    #mypasswd: 密码    var_dump($link);
    mysql_close();?>
Salin selepas log masuk

Pit 1 Panggilan ke fungsi yang tidak ditentukan mysql_connect()

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

Punca: fungsi mysql_connect() tidak ditakrifkan dan tidak didayakan dalam fail konfigurasi php.ini

Penyelesaian:

1.1 Konfigurasikan fungsi php.ini

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP
1.1.1 Alih keluar koma bertitik komen sebelum extension=php_mysql.dll;
1.1.2 Tentukan laluan mutlak php_mysql.dll melalui sambungan

1.2 Konfigurasi laluan fail

1.2.1 Salin fail php.ini ke c:windowssystem32

1.3 Mulakan semula perkhidmatan Apache (Saya tidak akan menyatakan cara untuk memulakan semula secara khusus. Jika anda tidak mengetahui perkara ini, maka artikel ini Tidak membantu anda)

Pit 2 Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

Sebab: Mekanisme kunci kata laluan mysql8.x tidak konsisten disebabkan oleh

Selepas mysql 8.x, caching_sha2_password adalah pemalam pengesahan lalai dan bukannya mysql_native_password sebelumnya.

Penyelesaian

1.1 Ubah suai fail konfigurasi my.ini mysql

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

Anda boleh melihat bahawa kaedah pengesahan lalai ialah caching_sha2_password, di sini ia diubah suai kepada mysql_native_password

1.2 Lihat pemalam pengesahan pengguna yang sepadan dalam mysql

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

Anda boleh melihat bahawa pemalam pengesahan pengguna root telah ditukar kepada mysql_native_password

Jika kaedah pengesahan telah tidak berubah, lakukan operasi berikut

# 登陆mysqlmysql -uroot -p# 使用mysql数据库use mysql;# 修改身份验证插件ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
Salin selepas log masuk

坑3  字符集错误 sever sent charset unknowd to the client ,Please report to the decelopers

Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP

原因: MySQL8更换了默认的服务器字符集,mysql8.x的字符集character-set-server默认是utf8mb4,不再是5.x时代的utf8了

解决方法:

修改mysql的my.ini配置文件,具体修改条目如下:(这里只展示了需要修改的条目,原配置文件内容很多)

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_cicharacter-set-server = utf8
Salin selepas log masuk

切记:任何每一次的修改,都需要重启Apache服务,以及mysql服务!!!

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Apa yang perlu dilakukan jika sambungan ke pangkalan data gagal menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan