[英]Communications link failure while connecting to mysql
我正在嘗試從我的 android 應用程序連接到 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 中的字段引起以下錯誤:
Caused by: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused
Caused by: java.net.ConnectException: /127.0.0.1:3306 - Connection refused
Caused by: java.net.SocketException: The operation timed out
Caused by: java.net.SocketException: The operation timed out
Caused by: java.net.UnknownHostException: MainSrv04
我還通過telnet ping mysql
端口並且它正在工作。
此外,我已經照顧了特權。
但我仍然收到Communications link failure
錯誤。
任何幫助表示贊賞。
android 應用程序是否在同一個網絡上? 如果不
jdbc:mysql://192.168.1.104:3306
和
jdbc:mysql://10.0.0.0:3306
不管用。
給出正確的mysql網絡地址。
我使用最新版本的 adt和mysql-connector-java-5.1.17-bin.jar ,這對我有用:
在setContentView(R.layout.activity_main);
行之后將以下代碼添加到您的文件中setContentView(R.layout.activity_main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
並使用import android.os.StrictMode;
如果使用新的 api,請添加@SuppressLint("NewApi");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.