Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mendiagnosis dan menyelesaikan isu sambungan pangkalan data PHP?

Bagaimana untuk mendiagnosis dan menyelesaikan isu sambungan pangkalan data PHP?

WBOY
WBOYasal
2024-06-01 09:49:57640semak imbas

Diagnosis dan selesaikan isu sambungan pangkalan data PHP Pastikan maklumat sambungan (nama hos, nama pengguna, kata laluan) adalah betul. Gunakan mysqli_connect_errno() dan mysqli_connect_error() untuk mendapatkan maklumat ralat. Semak fail log untuk butiran. Pastikan bahawa tembok api membenarkan sambungan ke port pelayan pangkalan data (biasanya 3306). Semak sama ada pelayan pangkalan data sedang berjalan.

如何诊断和解决 PHP 数据库连接问题?

Cara mendiagnosis dan menyelesaikan masalah sambungan pangkalan data PHP

Masalah sambungan pangkalan data ialah ralat biasa dalam pembangunan PHP. Artikel ini akan membimbing anda tentang cara mendiagnosis dan menyelesaikan isu ini. . betul , dan mempunyai hak akses yang diperlukan.

Langkah 2: Gunakan mysqli_connect_errno() dan mysqli_connect_error()

mysqli_connect() Fungsi akan mengembalikan nilai Boolean untuk menunjukkan perkaitan sama ada berjaya. Jika sambungan gagal, anda boleh menggunakan fungsi mysqli_connect_errno() dan mysqli_connect_error() untuk mendapatkan kod dan mesej ralat.

  • Contoh:
  • $link = mysqli_connect("hostname", "username", "password", "database");
    
    if (!$link) {
        $error_code = mysqli_connect_errno();
        $error_message = mysqli_connect_error();
    }
  • Langkah 3: Semak fail log
  • Pengelogan mungkin didayakan dalam konfigurasi PHP anda. Semak fail log untuk mendapatkan butiran tentang masalah sambungan. Fail log biasanya terdapat dalam /var/log/php-fpm.log atau /var/log/php.log.

Langkah 4: Firewall dan Ports

mysqli_connect_errno()mysqli_connect_error()

mysqli_connect() 函数会返回一个布尔值表示连接是否成功。如果连接失败,您可以使用 mysqli_connect_errno()mysqli_connect_error() 函数获取错误代码和消息。

示例:

sudo service mysql status

第三步:检查日志文件

您的 PHP 配置中可能启用了日志。检查日志文件以获取有关连接问题的详细信息。日志文件通常位于 /var/log/php-fpm.log/var/log/php.log 中。

第四步:防火墙和端口

确保防火墙允许连接到数据库服务器的端口。通常,MySQL 服务器使用端口 3306。

第五步:数据库服务器状态

检查数据库服务器是否正在运行。您可以使用以下命令:

sudo service mysql start

如果服务器未运行,请使用以下命令启动它:

rrreee

实战案例

问题:连接到 MySQL 数据库时出现 mysqli_connect(): (HY000/1130): Host 'localhost' is not allowed to connect to this MySQL serverPastikan firewall membenarkan port bersambung ke pelayan pangkalan data. Biasanya, pelayan MySQL menggunakan port 3306.

Langkah 5: Status Pelayan Pangkalan Data

🎜Periksa sama ada pelayan pangkalan data sedang berjalan. Anda boleh menggunakan arahan berikut: 🎜rrreee🎜Jika pelayan tidak berjalan, mulakannya menggunakan arahan berikut: 🎜rrreee🎜🎜Kes praktikal🎜🎜🎜🎜Masalah: 🎜mysqli_connect(): (HY000/ 1130): Hos 'localhost' tidak dibenarkan menyambung ke pelayan MySQL ralat ini. 🎜🎜🎜Penyelesaian: 🎜Semak peraturan tembok api dan ketahui bahawa port MySQL 3306 tidak dibenarkan. Benarkan port dalam tembok api dan masalah itu diselesaikan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mendiagnosis dan menyelesaikan isu sambungan pangkalan data PHP?. 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