Mysql

phpmyadmin 不會連接到遠端 MySQL 實例

  • February 18, 2016

我有一個 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 

引用自:https://serverfault.com/questions/592617