Arch中使用Jdbc连接 Mysql_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1830 | 回复: 0   主题: Arch中使用Jdbc连接 Mysql        下一篇 
大红薯
注册用户
等级:少校
经验:1440
发帖:159
精华:0
注册:2011-7-21
状态:离线
发送短消息息给大红薯 加好友    发送短消息息给大红薯 发消息
发表于: IP:您无权察看 2014-12-17 15:24:50 | [全部帖] [楼主帖] 楼主

这次的作业中要用数据库,所以弄这个东西,一直都觉得数据库很麻烦,这次真是令我头大了。不过问题到不是出在数据库上,而是出在 Arch 对安全的设置上。

问题出在无论怎么配置 mysql,无论怎样修改 jdbc 的测试程序都没有办法连接到 mysql 服务器。有以下几种情况:

本机只能使用 mysql -h localhost -u … -p 来登录,如果使用 ip 地址或者在 /etc/hosts 中的其他主机名则出现如下信息

 ERROR 2013 (HY000): Lost connection to MySQL server during query


在其他机器上访问时也出现这样信息。
使用 jdbc 连接时出现如下信息:

 com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.io.EOFException STACKTRACE: java.io.EOFException at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913) at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:501) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:971) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2644) at com.mysql.jdbc.Connection.(Connection.java:1531) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171) at SimpleConnection.main(SimpleConnection.java:22) ** END NESTED EXCEPTION **


搞了好久要崩溃的时候机房其他的同学成功的用 jdbc 连接 mysql 服务器了,他用的是 Ubuntu,在 Ubuntu 的 Wiki 里看到要把 /etc/my.cnf 里的”bind 127.0.0.1” 去掉以使 mysql 可以通过网络访问。但是我的 my.cnf 里面默认没有这个设置。于是 Google 了 Arch 的 Wiki,找到了这篇文章。终于明白问题处在 Arch 下 /etc/hosts.deny 默认为 “ALL: ALL: DENY”,这样就阻止了通过 TCP/IP 对 mysql 服务器的访问。我在 /etc/hosts.allow 中加了 “mysqld: ALL: ALLOW” 以后再连接就成功了。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论