求助:关于在docker中运行的mysql访问出错

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
wgj
帖子: 294
注册时间: 2007-06-02 20:00

求助:关于在docker中运行的mysql访问出错

#1

帖子 wgj » 2014-09-05 17:13

这个问题挺复杂的。
我使用docker安装了mysql5.6。安装源为https://registry.hub.docker.com/u/tutum/mysql/
启动命令是docker run --name mysql -p 3306:3307 -e MYSQL_ROOT_PASSWORD=admin -d mysql。
然后连接测试mysql -uadmin -padmin -P3307 -h127.0.0.1 一切正常
但是java Spring的项目运行报错,提示连接拒绝。
配置如下

代码: 全选

xboss.request.batch.admin.driverClassName=com.mysql.jdbc.Driver
xboss.request.batch.admin.url=jdbc:mysql://127.0.0.1:3307/xboss?useUnicode=true&charaterEncoding=utf-8
xboss.request.batch.admin.username=admin
xboss.request.batch.admin.password=admin
这还不是最诡异的。
如果改成远程数据库则连接正常。

代码: 全选

xboss.request.batch.admin.driverClassName=com.mysql.jdbc.Driver
xboss.request.batch.admin.url=jdbc:mysql://192.168.1.115:3306/xboss?useUnicode=true&charaterEncoding=utf-8
xboss.request.batch.admin.username=admin
xboss.request.batch.admin.password=admin
但是我使用python连接就完全没问题。
又使用了java自带打sql库连接也正常。
代码如下

代码: 全选

/**
 * 类名称  : testJava <br/>
 * 功能描述: TODO 请追加功能描述。<br/>
 * 创建时间: 2014年9月5日 <br/>
 * 创建者  : idatag <br/>
 */
  import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class testJava {

  public static void main(String []arg){
  String driver = "com.mysql.jdbc.Driver";
  String url = "jdbc:MySQL://127.0.0.1:3307/xboss";
  String username = "admin";
  String password = "admin";

  try{
  //新建一个待写入的文件
  Class.forName(driver);
  Connection conn = DriverManager.getConnection(url,username,password);
  if(conn.isClosed())
  System.out.println("Success Connected!!!");
  Statement statement = conn.createStatement();
  String sql = "select * from xboss_menu";
  System.out.println("######################");
  //获取id
  ResultSet rs = statement.executeQuery(sql);
  while(rs.next()){
  System.out.println(rs.getString("PARENT_MENU_ID")+"\t"+rs.getString("MENU_ORDER"));
  }
  rs.close();
  conn.close();
  }catch(ClassNotFoundException e){
  System.out.println("Sorry, can't find the driver!!!");
  e.printStackTrace();
  }catch(SQLException e){
  e.printStackTrace();
  }catch(Exception e){
  e.printStackTrace();
  }
  }
}
防火墙已经关闭。跪求大神指点 :em21 谢谢。
wgj
帖子: 294
注册时间: 2007-06-02 20:00

Re: 求助:关于在docker中运行的mysql访问出错

#2

帖子 wgj » 2014-09-09 22:27

会不会根防火墙有关系?
回复