phpmyadmin 不會連接到遠端 MySQL 實例
我有一個 LAMP 堆棧盒(CentOS 6)和另一個執行 mysql 伺服器的 CentOS 6 盒。
我已經在 LAMP 盒子上安裝了 phpmyadmin,但我根本無法讓它與我的 SQL 盒子對話。
我在 config.inc.php 中配置了以下內容
/* Servers configuration */ $i = 0; /* Server: usp-ggdb2 [1] */ $i++; $cfg['Servers'][$i]['verbose'] = 'usp-ggdb2'; $cfg['Servers'][$i]['host'] = '10.1.2.3'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = '';
當我瀏覽到 phpmyadmin 站點時,我收到以下錯誤:
#2002 - 無法通過套接字’/var/lib/mysql/mysql.sock’ 連接到本地 MySQL 伺服器 (2) 伺服器沒有響應(或本地伺服器的套接字配置不正確)。
我不知道為什麼它在談論嘗試連接到本地伺服器,因為我只配置了一台伺服器(而且它是遠端的)。
如果我 tcpdump 我可以看到它沒有嘗試建立與我指定的 IP 的連接。
好像我的配置文件被忽略了。
有沒有辦法打開更多的調試資訊?歡迎任何和所有建議!
我已經解決了這個問題。事實上,我的配置文件被忽略了。我一直在將 config.inc.sample.php 複製到網站頂級目錄 (/var/www/html/pma) 中的 config.inc.php。
然而,在 CentOS 6 上有一個單獨的配置目錄 – /etc/phpMyAdmin/。一旦我在那裡複製了我的配置,一切正常。
RHEL 6 和 CentOS 6 中的標准設置之一是 SELinux 預設為強制模式。
getenforce
您可以使用命令進行驗證。如果處於
Enforcing
模式下,驗證 SELinux 是否是罪魁禍首的最快方法通常是使用setenforce 0
. 如果禁用 SELinux,一切都按預期工作,則可以確認。將 SELinux 返回到強制模式,
setenforce 1
並將管理基於網路的 Web 應用程序數據庫訪問的策略設置為允許:setsebool -P httpd_can_network_connect_db 1
如果 MySQL 數據庫正在偵聽可能不足的非標準埠,您可以嘗試允許通用網路策略:
sesebool -P httpd_can_network_connect 1