首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

解決 PHP mysql_connect() 不支援錯誤:模組載入完整指南

     編輯:MySQL 綜合教學

解決 PHP mysql_connect() 不支援錯誤:模組載入完整指南

在 Linux 環境部署 Discuz 等 PHP 應用時,常遇到 mysql_connect() 不支援,請檢查 mysql 模組是否正確加載 錯誤。本文提供基於 CentOS 5.4 環境的完整排查與修復方案,核心在於安裝缺失的 php-mysql 與 php-pdo 擴展模組。

故障現象

應用啟動報錯:mysql_connect() 不支援請檢查mysql模塊是否正確加載

根因分析

檢查 PHP 模組目錄 /usr/lib/php/modules/(64 位系統為 /usr/lib64/php/modules/),發現缺少關鍵的 mysql.so、mysqli.so、pdo_mysql.so 等擴展檔案。

修復步驟

1. 獲取 RPM 安裝包

從 CentOS 5.4 安裝光碟或官方鏡像站下載對應版本:

  • php-mysql-5.1.6-20.el5.i386.rpm
  • php-pdo-5.1.6-20.el5.i386.rpm

上傳至伺服器(如 /tmp 目錄)。

2. 強制安裝(忽略依賴)

rpm -ivh php-mysql-5.1.6-20.el5.i386.rpm --nodeps
rpm -ivh php-pdo-5.1.6-20.el5.i386.rpm --nodeps

注意:--nodeps 參數跳過依賴檢查,若系統缺少底層庫可能導致運行時錯誤,建議優先使用 yum install php-mysql php-pdo 自動解決依賴。

3. 驗證模組載入

ls /usr/lib/php/modules/ | grep -E 'mysql|pdo'
# 預期輸出包含:
# mysql.so  mysqli.so  pdo_mysql.so  pdo.so  pdo_sqlite.so

4. 配置 php.ini 啟用擴展

vi /etc/php.ini

# 找到 extension=msql.so 行,在其下方添加(去掉分號註釋):
extension=mysql.so
extension=mysqli.so
extension=pdo_mysql.so

5. 重啟 Web 服務生效

/etc/init.d/httpd restart
# 或 systemctl restart httpd (CentOS 7+)

驗證修復

重新整理網頁,MySQL 連線應恢復正常。可建立測試腳本確認:

<?php
$link = mysql_connect('localhost', 'root', 'password');
if ($link) {
    echo 'MySQL 連線成功!';
    mysql_close($link);
} else {
    echo '連線失敗:' . mysql_error();
}
?>

現代化建議

重要提醒:mysql_connect() 自 PHP 5.5.0 起棄用,PHP 7.0 完全移除。新專案請使用:

  • PDO_MySQL:new PDO('mysql:host=localhost;dbname=test', 'user', 'pass')
  • MySQLi:new mysqli('localhost', 'user', 'pass', 'dbname')

兩者均支援預處理語句、事務控制、物件導向介面,安全性與效能遠優於舊版 mysql 擴展。

常見坑點

  1. 版本不匹配:RPM 包版本必須與系統 PHP 版本一致,否則模組無法載入
  2. 64 位路徑:x86_64 系統模組目錄為 /usr/lib64/php/modules/
  3. SELinux 阻擋:若重啟後仍失效,檢查 /var/log/audit/audit.log,可能需 setsebool -P httpd_can_network_connect_db 1
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved