我正在尝试从我的 Android 应用程序连接到 mysql 数据库。
我收到通信链接失败错误。
以下是代码 fragment :
public class MySqlConnector {
private Connection con = null;
private String s = "";
private String username = "root";
private String password = "password01";
private String connectionString;
public String ConnectToDb() {
connectionString ="jdbc:mysql://192.168.1.104:3306/mydatabase";
//connectionString="jdbc:mysql://10.0.0.0:3306/mydatabase";
// connectionString="jdbc:mysql://127.0.0.1:3306/mydatabase";
//connectionString = "jdbc:mysql://MainSrv04:3306/mydatabase";
// connectionString="jdbc:mysql://localhost:3306/mydatabase";
// connectionString =
// "jdbc:mysql://localhost:3306/mydatabase?user=root&password=password01&useUnicode=true&characterEncoding=UTF-8";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
ex.printStackTrace();
}
try {
con = DriverManager.getConnection(connectionString, username,
password);
Statement st = con.createStatement();
String sql = "SELECT First_Name FROM mydatabase.custinfo where CardNumber=5325784707";
ResultSet rs = st.executeQuery(sql);
s = rs.getString("First_Name");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
Log.i("MySqlConnector", "Database connection terminated");
} catch (Exception e) { /* ignore close errors */
}
}
}
if (s == "") {
s = "No Result";
}
Log.i("MySqlConnector : s=", s);
return s;
}
}
我尝试了注释中所示的所有可能的组合,并在 logcat 中的由字段引起的以下错误:
- 使用 localhost 时 -->
由以下原因引起:java.net.ConnectException: localhost/127.0.0.1:3306 - 连接被拒绝
- 使用 127.0.0.1 时 -->
由以下原因引起:java.net.ConnectException:/127.0.0.1:3306 - 连接被拒绝
- 使用 10.0.0.0 时 -->
引起:java.net.SocketException:操作超时
- 使用 192.168.1.104 时 -->
原因:java.net.SocketException:操作超时
- 使用 MainSrv04 时 -->
由以下原因引起:java.net.UnknownHostException:MainSrv04
我还通过 telnet ping mysql
端口,它正在工作。
另外,我已经照顾好特权了。
但我仍然收到通信链接失败
错误。
感谢任何帮助。
最佳答案
Android 应用程序是否位于同一个网络上?如果没有
jdbc:mysql://192.168.1.104:3306
和
jdbc:mysql://10.0.0.0:3306
不会工作。
给出mysql的正确网络地址。
关于java - 连接 mysql 时通信链路失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196842/