连接到mysql时java通信链路故障
我正在尝试从安卓应用程序连接到mysql数据库
我收到通信链路故障错误
下面是代码片段:
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时-->
Caused by: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused
- 使用127.0.0.1时-->
Caused by: java.net.ConnectException: /127.0.0.1:3306 - Connection refused
- 使用10.0.0.0时-->
Caused by: java.net.SocketException: The operation timed out
- 使用192.168.1.104时-->
Caused by: java.net.SocketException: The operation timed out
- 使用MainSrv04时-->
Caused by: java.net.UnknownHostException: MainSrv04
我还通过telnetping了mysql
端口,它正在工作
此外,我还照顾到了特权
但我仍然得到了Communications link failure
错误
谢谢你的帮助
# 1 楼答案
android应用程序在同一个网络上吗?如果不是
及
这是行不通的
给出mysql的正确网络地址
# 2 楼答案
我使用最新版本的adt和mysql-connector-java-5.1.17-bin。jar,这对我很有用:
将下面的代码添加到文件的
setContentView(R.layout.activity_main);
行之后并使用
import android.os.StrictMode;
如果使用新api,请添加
@SuppressLint("NewApi");