Centos
CentOS:無法遠端連接到 mysql 伺服器,但我可以“nc”連接到它
我有兩個虛擬機,都執行 CentOS。
一個是網路伺服器:10.2.2.59——在這個伺服器上我放了 Moodle 網路應用程序文件。
一個是 DB server: 10.2.2.58 我安裝了 MySQL 並且執行良好,更改
my.conf
為 comment#skipping-network
和 commented#bind-address
。我已將防火牆配置為接受埠 3306
-A INPUT -s 10.3.2.59 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
在(.59)上,我嘗試了
nc -z 10.2.2.58 3306
,輸出是Connection to 10.2.2.58 3306 port [tcp/mysql] succeeded!
我還嘗試使用從(.59)到(.58)遠端連接到mysql
mysql -u moodle_XXXX_ur -p -h 10.2.2.58
它確實連接並
mysql>
顯示了提示。我授予“moodle_XXXX_ur”所有權限給moodle_XXX_DB
主要問題是當我嘗試使用這些參數在(.59)中安裝moodle時
Database host : 10.2.2.58 Database name : moodle_XXX_DB Database user : moodle_XXXX_ur Database password: XXXXXXXXXXXXX Tables prefix: mdl_ Unix socket: true
我也嘗試將 Unix 套接字設置
false
為。一個錯誤顯示:
Error: Database connection failed It is possible that the database is overloaded or otherwise not running properly. The site administrator should also check that the database details have been correctly specified in config.php Warning: mysqli::mysqli(): (HY000/2002): Permission denied in /var/www/html/lib/dml/mysqli_native_moodle_database.php on line 76
第 76 行如下所示:
$conn = new mysqli($dbhost, $dbuser, $dbpass, '', $dbport, $dbsocket); // Connect without db
任何幫助,或任何追踪問題的方法???
如此處所述,這可能是因為 selinux 政策。嘗試在兩台伺服器上關閉 selinux。在 CentO 上啟用或禁用 SELinux
似乎是 “SELinux Booleans”的問題 使用以下命令來顯示布爾值的狀態
$getsebool -a | grep httpd_can_network
並且“httpd_can_network_connect_db”應該打開
httpd_can_network_connect_db --> on
否則你必須打開這個命令
$setsebool -P httpd_can_network_connect_db 1