在android中使用mysql連接通過jdbc在java中成功完成登錄表單...它在我的本地主機上成功工作...但發展網站沒有工作...以下錯誤顯示。jdbc連接socketexception錯誤
java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.ConnectException: Connection timed out: connect
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection timed out: connect
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection timed out: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
at com.mysql.jdbc.Connection.<init>(Connection.java:452)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.retrieve.retrieve.main(retrieve.java:15)
** END NESTED EXCEPTION **
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1875)
at com.mysql.jdbc.Connection.<init>(Connection.java:452)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.retrieve.retrieve.main(retrieve.java:15)
爲什麼發生錯誤發生。給我一些解決方案。 如果正在運行本地主機意味着我的SQL查詢
package com.example.login;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class LoginLayoutActivity extends Activity {
EditText username,password;
TextView error;
Button ok;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
username=(EditText)findViewById(R.id.et_un);
password=(EditText)findViewById(R.id.et_pw);
error=(TextView)findViewById(R.id.tv_error);
ok=(Button)findViewById(R.id.btn_login);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Editable user = username.getText();
Editable pass = password.getText();
try {
**Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/people", "root", "");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT password FROM customers where login='"+user+"'");**
if(rs.next())
{
String dbpass = rs.getString(1);
if(dbpass.equals(pass)){
error.setText("Correct Username or Password");
}
else
{
error.setText("Sorry!! Incorrect Username or Password");
}
}
}
catch (SQLException e) {
username.setText(e.toString());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
如果正在運行的開發網站表示我的查詢是:
package com.example.login;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class LoginLayoutActivity extends Activity {
EditText username,password;
TextView error;
Button ok;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
username=(EditText)findViewById(R.id.et_un);
password=(EditText)findViewById(R.id.et_pw);
error=(TextView)findViewById(R.id.tv_error);
ok=(Button)findViewById(R.id.btn_login);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Editable user = username.getText();
Editable pass = password.getText();
try {
**Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://dev.xxxxx.com/xxx", "xxxx", "xxxx");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT password FROM customers where login='"+user+"'");**
if(rs.next())
{
String dbpass = rs.getString(1);
if(dbpass.equals(pass)){
error.setText("Correct Username or Password");
}
else
{
error.setText("Sorry!! Incorrect Username or Password");
}
}
}
catch (SQLException e) {
username.setText(e.toString());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
DIS開發網站的用戶名,密碼,數據庫名稱和網址都僅改變R是正確的。 ..爲什麼DIS錯誤發生....給我解決方案...
可以ping到該主機?你能通過其他工具連接到MySQL嗎? – 2012-02-18 13:09:14
雅我平主機...然後只把...沒有..在這裏jdbc只用... – hariprasad 2012-02-18 13:28:48
嘗試連接使用其他工具,並嘗試縮小問題搜索空間 – 2012-02-18 13:29:47