一、下载jar包,如mysql-connector-java-5.1.7-bin.jar;
直接百度下载一个即可;
二、打开MyEclipse,选择window--show view--other,然后选择MyEclipse database下的DB Browser,如下图:
三、在弹出的窗口空白区域,右键--new
四、新建一个连接,操作具体如下图所示:
注意:1、其中的connection URL要填写你要操作的远程服务器的地址,如:192.127.1.1/test,test为你要进行连接的mysql下的一个数据库;
2、User name填登录远程数据库的用户名,password为登录数据库的密码;
3、add jars,选择第一步下载的mysql-connector-java-5.1.7-bin.jar。
五、点击Test Driver,测试。出现下图1,则表示连接成功;若出现图2,出现错误,也是我搞了一天没搞定的错误。
参考了很多网上的回答和教程,如:https://stackoverflow.com/questions/2121829/com-mysql-jdbc-exceptions-jdbc4-communicationsexceptioncommunications-link-fail;https://stackoverflow.com/questions/36459337/com-mysql-jdbc-packettoobigexception-java;https://stackoverflow.com/questions/40766080/sonarqube-6-1-com-mysql-jdbc-packettoobigexception-packet-for-query-is-too-larg;https://stackoverflow.com/questions/13759418/com-mysql-jdbc-packettoobigexception/27303694#27303694;https://stackoverflow.com/questions/35785235/how-do-i-connect-to-mysql-database-located-on-a-namecheap-server-through-java-jd等等。(或许对读者有用,特贴出)
并且更改了提示中的max_allowed_packet的值,关防火墙巴拉巴拉都没有解决。
最后,解决问题的操作:
编辑my.cnf文件,添加了以下3项:
port =3306 //端口号
user =root //用户名
bind-address = 0.0.0.0 //3306端口如果监听在0.0.0.0上,如果没有端口限制,那么其他服务器则可以连接该服务器的该端口
注意:my.cnf文件在 /etc 目录下,使用命令cd /etc进入目录,使用命令 vim my.cnf 打开文件进行编辑。
问题解决!!!
总结:此种方式如果连接不上,使用代码进行连接也会出现同样的错误,如下报错:
Exception in thread "main" com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:604)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1070)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.lilin.mysqlTest.connect(mysqlTest.java:51)
at com.lilin.mysqlTest.main(mysqlTest.java:26)
不过进行以上所述更改后,问题同样解决!