有人可以向我解释此行为何起作用:
conn = DriverManager.getConnection("jdbc:mysql://myWebsite.com:3306/schemaName?user=userX&password=passwordX");
但是此行不:
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/schemaName?user=userX&password=passwordX");
尝试通过本地主机(或127.0.0.1)访问时出现通信链接故障。但是,我可以通过localhost通过PHP,MySQLQuery Browser和MySQL Aministrator访问数据库。
如果需要,这是我正在使用的整个方法:
public Database() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
try {
conn = DriverManager.getConnection("jdbc:mysql://myWebsite.com:3306/schemaName?user=userX&password=passwordX");
// Next line does not work.
// conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/schemaName?user=userX&password=passwordX");
} catch (SQLException ex) {
displaySQLException(ex); // Seperate routine to display errors.
}
}
谢谢你的帮助,
理查德
最佳答案
您的mysqld可能是binding专用于以太网接口,而不是所有接口(0.0.0.0)或localhost接口(127.0.0.1)。
在* nix平台上,您可以使用以下命令检查守护程序正在侦听哪个接口:
$ netstat -ln|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN