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

时间:2014-07-24 13:57:16

标签: php mysql ssh

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

我的MySQL IP地址是LocalHost。

我不会透露我的实际IP,但可以说服务器B的LOCAL 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();
}

?>

或者我会用&#34; mysql_connect&#34;。

做同样的事情

对于开放式问题,以及缺少可用的代码,我们深表歉意。我在概念上苦苦挣扎,这意味着我不知道从哪里开始编写代码。任何方向将不胜感激。

0 个答案:

没有答案