Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何连接到安装在PHP中单独远程服务器上的MySQL服务器?_Php_Mysql_Ssh - Fatal编程技术网

如何连接到安装在PHP中单独远程服务器上的MySQL服务器?

如何连接到安装在PHP中单独远程服务器上的MySQL服务器?,php,mysql,ssh,Php,Mysql,Ssh,嗨,让我进一步解释。我正在写一个网页,它将显示我创建的MySQL数据库中的数据。我的网站将托管在服务器A上。我的MySQL服务器安装在服务器B上。我需要通过php中的服务器B连接到MySQL服务器 我的MySQL IP地址是LocalHost 我不会给出我的实际IP,但假设服务器B的本地IP是1.2.3.4 服务器A与服务器B位于同一网络上 我在java中做了几乎相同的事情,当时我编写了一个程序来插入数据。以下是我的代码: private void MySQLConnection() throw

嗨,让我进一步解释。我正在写一个网页,它将显示我创建的MySQL数据库中的数据。我的网站将托管在服务器A上。我的MySQL服务器安装在服务器B上。我需要通过php中的服务器B连接到MySQL服务器

我的MySQL IP地址是LocalHost

我不会给出我的实际IP,但假设服务器B的本地IP是1.2.3.4

服务器A与服务器B位于同一网络上

我在java中做了几乎相同的事情,当时我编写了一个程序来插入数据。以下是我的代码:

private void MySQLConnection() throws Exception {

        String url = "jdbc:mysql://" + rhost +":" + lport + "/NAMEOFDB";
        String dbUser = "root";
        String dbPasswd = "";
        try{
            Class.forName("com.mysql.jdbc.Driver");//****Uses imported JAR
            this.connection = DriverManager.getConnection(url, dbUser,dbPasswd);             
        }
        catch (CommunicationsException e){
            e.printStackTrace();
            System.out.println("ERROR");
            System.out.println(e);
        }

    }    
    private void RedHatConnection(){
        String user = "ACTUALUSERNAME";
        String password = "ACTUALPASSWORD";
        String host = "1.2.3.4";
        int port=22;
        try{
            JSch jsch = new JSch();//****** Any JSch code uses imported JAR
            Session session = jsch.getSession(user, host, port);
            lport = 1234;
            rhost = "localhost";
            rport = 3306;
            session.setPassword(password);
            session.setConfig("StrictHostKeyChecking", "no");
            //System.out.println("Connecting to server.....");
            session.connect();
            try{
                int x = session.setPortForwardingL(lport, rhost, rport);
            }catch(Exception e){
                System.out.println(e);
            }
        }
我的理解是,我创建了一个到服务器B的SSH连接,然后使用它进入MySQL。我的mysql用户名是“root”,没有密码

PHP中有类似的东西吗

我以前用php连接过MySQL服务器;然而,这一点也不像

当我这样做的时候,我会用一些类似的东西:

<?php
//connect.php
$server = 'localhost';
$username   = 'USERNAME';
$password   = 'PASSWORD';
$database   = 'DB';

try {
  # MySQL with PDO_MYSQL
  $DBH = new PDO("mysql:host=$server;dbname=$database", $username, $password);
  $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
    echo $e->getMessage();
}

?>

或者我会用“mysql\u connect”做同样的事情


很抱歉出现了开放式问题,并且缺少可使用的代码。我在概念上与之斗争,这意味着我甚至不知道从哪里开始编写代码。任何指示都将不胜感激

您的mysql服务器是否已打开远程连接端口?是否引发任何异常?@Robert在我的php中?Yes@Robert实际上没有,它只是在phpAre中超时。你确定这个端口是打开的吗?您是否尝试过通过putty或telnet连接到它?因为若你们无法连接,并且超时,那个么服务器就会拒绝远程访问。