如何将wordpress数据库与JAVA连接? (MySQL的)

时间:2014-05-24 13:53:04

标签: java mysql database wordpress

我不太了解连接过程我试图连接wordpress数据库而不用mysql中的my remotedesktop IP创建新数据库。通常我可以连接localhost,我可以连接到使用remote ip创建的数据库。在我的服务器中,mydatabase host name/Ip adresslocalhost,正如我所说,我不知道url请求,wp-config文件和mysql之间的整个连接。我想我正在通过urlwp-config发送请求,并且它正在连接到我的localhost。无论如何,我想用JAVA连接到我的remotedesktop的localhost,但我不能。让我用代码解释一下。希望我能解释一下自己。

提前致谢。

以下是代码:

WP-config.php中

define('DB_NAME', 'mydbname');

define('DB_USER', 'mydbuser');

define('DB_PASSWORD', 'mydbpass');

define('DB_HOST', '127.0.0.1');

我的连接代码:

public class Dt_page {
    public static DataSource getDataSource(int server) {

    String database_driver = null;
    String database_adres = null;
    String dbuser = null;
    String dbpass = null;

    ConnectionFactory connectionFactory;
    switch (server) {

        case 1://profile server
            database_driver = "com.mysql.jdbc.Driver";
            database_adres = "jdbc:mysql://MY_REMOTE_DESKTOP_IP:3306/?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true";
            dbuser = "mydbuser";
            dbpass = "mydbpass";
    }

     try {
        Class.forName(database_driver);
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(Dt_page.class.getName()).log(Level.SEVERE, null, ex);
    }

    Properties props = new Properties();
    props.put("user", dbuser);
    props.put("password", dbpass);
    props.put("autoReconnect", "true");
    props.put("autoReconnectForPools", "true");

    props.put("validationQuery", "SELECT 1 from dual;");
    props.put("testWhileIdle","true");

    connectionFactory = new DriverManagerConnectionFactory(database_adres, props);

    GenericObjectPool connectionPool = new GenericObjectPool(null, 12, GenericObjectPool.WHEN_EXHAUSTED_GROW, 60*30, 12,true,true);
    GenericKeyedObjectPoolFactory keyedObjectPoolFactory = new GenericKeyedObjectPoolFactory(null);


    PoolableConnectionFactory poolableConnectionFactory =
            new PoolableConnectionFactory(connectionFactory,
            connectionPool,
            keyedObjectPoolFactory,
            "select 1",
            30,
            null,
            false,
              true);                                       

    PoolingDataSource dataSource = new PoolingDataSource(connectionPool);            
    return dataSource;

和SQL

  QueryRunner qr;
    qr = new QueryRunner(Dt_page.getDataSource(1));       
    try {
        List<Object[]> v = qr.query("Select meta_value from mydbname.wp_favorite", new ArrayListHandler());
         System.out.println(v.size());
        for (Object[] objects : v) {
            for (Object object : objects) {
                System.out.println(object);
            }
        }  
    }
    catch (Exception ex){
        ex.printStackTrace();           
    }
}
}

错误日志:

  com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2367)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2288)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:187)
at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:78)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at org.apache.commons.dbutils.AbstractQueryRunner.prepareConnection(AbstractQueryRunner.java:175)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:304)
at tazedizi.TazeDizi.main(TazeDizi.java:29)
 Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications    link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has  not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:355)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2461)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2306)
... 19 more
  Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at  java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at   java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:241)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:305)
... 21 more

1 个答案:

答案 0 :(得分:0)

要检查两件事:

  1. 您确定您的mysql服务器已配置为在MY_REMOTE_DESKTOP_IP上进行侦听吗?
  2. 您确定您的防火墙(iptable ...)允许在tpc端口3306上的MY_REMOTE_DESKTOP_IP上连接吗?