如果代码是:
,我可以连接到MySQLconn = DriverManager.getConnection(
"jdbc:mysql://localhost/db","root", "test");
但是一旦我将其更改为其中一个(首先是我的IP地址)
conn = DriverManager.getConnection(
"jdbc:mysql://82.41.85.161/db","root", "test");
conn = DriverManager.getConnection(
"jdbc:mysql://127.0.01/db","root", "test");
事情需要一段时间才会发生,所有确实发生的事情都是缺乏联系。
SQLException: Communications link failure
我尝试更改CNF文件中的绑定地址并添加"#"在它面前但没有任何反应。我目前正在纯粹在" MySQLWorkbench"这里的最终目标是实际从另一台计算机连接到这个数据库。任何帮助将非常感激。
答案 0 :(得分:1)
您需要确保将MySQL设置为允许远程连接,并确保您的端口可访问。也可以允许/禁止数据库中的用户从外部访问。
答案 1 :(得分:1)
127.0.01
无效。它应该是
127.0.0.1
如果localhost
工作正常,127.0.0.1通常没有任何理由不起作用。
就另一个问题而言,我确定你的公共接口不允许mysql端口访问。
答案 2 :(得分:1)
conn = DriverManager.getConnection(
"jdbc:mysql://127.0.01/db","root", "test");
你应该尝试这个:
conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1/db","root", "test");
答案 3 :(得分:0)
首先,在连接到环回地址时设置地址时输入错误。它应该是127.0.0.1
而不是127.0.01
。
conn = DriverManager.getConnection("jdbc:mysql://127.0.01/db","root", "test");
其次,出于安全原因,默认情况下禁用对MySQL数据库服务器的远程访问。您必须告诉服务器将自己绑定到给定的IP地址并侦听连接。
为此,您必须编辑my.cnf文件,您可以在以下某个位置找到该文件:
/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf
[datadir]/my.cnf
~/.my.cnf
或者,您可以使用find找到要编辑的文件:
$ find / -iname "my.cnf" -print 2>/dev/null
/etc/mysql/my.cnf
然后编辑my.cnf并添加以下内容:
bind-address = 82.41.85.161
请确保使用#之前对skip-networking
行进行评论:#skip-networking
使用iptables -L -n | grep :PORT
验证防火墙是否阻止了端口3306上的连接。
最后用/etc/init.d/mysql restart
重新启动mysql。