我的程序可以连接到localhost
MySQL server
以从中获取数据。但是当我将数据库上传到服务器上时,我再也无法连接了。
final static String db_url = "jdbc:mysql://***.***.***.***:3306/oyutan";
String card = cardnumber.getText();
String pinn = pincode.getText();
String pindb = null;
String pinsql = "SELECT * FROM `card` WHERE `card_number`=" + card + ";";
try {
Class.forName(jdbc_driver);
con = DriverManager.getConnection(db_url, "bilig", "199108");
ps = con.prepareStatement(pinsql);
rs = ps.executeQuery();
if (rs.next()); {
pindb=rs.getString("code")+"";
cardnumber.setText(" ");
pincode.setText(" ");
}
}
catch(Exception g) {
System.out.println("Not Found!");
g.printStackTrace();
}
我可以使用命令行访问数据库,但这会导致错误&#34;主机&#39; 。 。 。< / EM> &#39;不允许连接到这个MySQL服务器&#34;。我给了自己所需的所有特权。我是否需要其他程序,例如Tomcat
,Apache
等?
答案 0 :(得分:0)
是本地的数据库服务器吗? 我的意思是你的代码是localhost吗?
如果没有,您需要将主机添加到您正在使用的用户名,即您的代码将运行的IP,因此db-server允许此用户从远程计算机进行连接。
答案 1 :(得分:0)
我给了自己所需的所有特权。
显然MySQL不同意你的观点。
您授予特定计算机上特定用户的权限。这是一个例子:
create database contacts;
create user contacts identified by 'contacts';
-- this next one is what you're probably missing.
grant all on contacts.* to 'contacts'@'%';
grant select on `mysql`.`proc` to 'contacts'@'%';
use contacts;
每次使用字符串&#34;联系人&#34;上面是我的一个例子,碰巧使用具有该名称的数据库。我创建了一个名为&#39; contacts&#39;密码&#39;联系人&#39; (不是最具想象力的命名方案。)
根据您的情况调整值。