问题:无法通过SSH从apache访问远程MySQL
我的目标是通过ssh隧道安全地使用apache和tomcat从应用服务器访问DB。APP服务器(Linux)正在运行apache,tomcat。DB服务器(Linux)正在运行mysql服务器(端口3306)。在这两个服务器上都为用户: sshUser设置了SSH。启动DB上的MySQL。
SSH连接:在APP服务器上,我以sshUser的形式运行了以下命令。(sshUser是应用程序和DB服务器的登录用户)
ssh -p 22 -f -N -L 3307:localhost:3306 sshUser@DB_ip_address然后我在应用服务器上启动了httpd和tomcat。
测试用例: 1. APP服务器(httpd) (localhost:3307)>(3306) DB服务器(MySQL)失败:在APP服务器上,我以以下php代码运行test.php
<?php
$db_host = "localhost:3307";
$db_name = "dbname";
$db_user = "dbuser";
$db_pass = "dbpassword";
GLOBAL $errors;
GLOBAL $successes;
$errors = array();
$successes = array();
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);
GLOBAL $mysqli;
if(mysqli_connect_errno()) {
echo "Conn Error = " . mysqli_connect_error(); exit();
}else{
echo "Pass"; exit();
}
?>错误消息:警告: mysqli::mysqli():(HY000/2005):第10行中未知的MySQL服务器主机'localhost:3307‘(1)在/$site_path/test.php中,Conn Error =未知的MySQL服务器主机'localhost:3307’(1) (使用joomla和wordpress也失败)
配置细节:在应用服务器上: Tomcat由“tomcat”用户启动,httpd由“apache”用户启动,mysqld由“root”启动,ssh由“sshUser”启动,sshd由“root”启动。
apache:x:48:48:Apache:/var/www:/sbin/nologin tomcat:x:501:501::/home/tomcat:/sbin/nologin
发布于 2015-09-08 15:09:45
必须将端口号作为参数添加到构造函数中。
$db_host="localhost";
$db_port=3307;
.....
new mysqli ( ....,$db_port);
....https://stackoverflow.com/questions/32460734
复制相似问题