溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決linux php連不上mysql數據庫問題

發布時間:2021-10-26 10:02:00 來源:億速云 閱讀:536 作者:iii 欄目:編程語言
# 如何解決Linux PHP連不上MySQL數據庫問題

## 問題現象
在Linux服務器上運行PHP程序時,常會遇到無法連接MySQL數據庫的情況,典型報錯包括:

Warning: mysqli_connect(): (HY000/2002): Connection refused

Access denied for user ‘username’@‘localhost’ (using password: YES)


## 常見原因與解決方案

### 1. MySQL服務未運行
```bash
# 檢查MySQL狀態
systemctl status mysql

# 啟動服務(根據實際服務名可能是mysqld或mariadb)
sudo systemctl start mysql

2. 網絡端口問題

MySQL默認使用3306端口:

# 檢查端口監聽
netstat -tulnp | grep 3306

# 測試遠程連接(替換為實際IP)
telnet 服務器IP 3306

若未監聽,需檢查my.cnf配置文件中bind-address參數:

bind-address = 0.0.0.0  # 允許所有IP連接

3. 用戶權限配置

-- 登錄MySQL后執行
GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'%' IDENTIFIED BY '密碼';
FLUSH PRIVILEGES;

4. PHP擴展缺失

確保已安裝PHP MySQL擴展:

# 根據PHP版本選擇擴展
sudo apt install php-mysql  # PHP7+
sudo yum install php-mysqli # CentOS

5. SELinux/Firewall限制

# 臨時關閉SELinux
setenforce 0

# 防火墻放行3306
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

完整排查流程

  1. 檢查MySQL服務狀態
  2. 驗證本地連接:mysql -u用戶 -p密碼
  3. 檢查PHP連接代碼:
<?php
$conn = new mysqli("127.0.0.1", "用戶", "密碼", "數據庫");
if ($conn->connect_error) {
    die("連接失敗: " . $conn->connect_error);
}
  1. 查看PHP錯誤日志:/var/log/php_errors.log

高級調試技巧

  • 啟用MySQL查詢日志:
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/queries.log
  • 使用tcpdump抓包分析:
sudo tcpdump -i any port 3306 -w mysql_debug.pcap

通過以上步驟,90%的連接問題都能得到解決。如仍無法連接,建議檢查MySQL錯誤日志(通常位于/var/log/mysql/error.log)獲取具體錯誤信息。 “`

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女