连接mysql数据库java

时间:2012-01-10 01:41:43

标签: java mysql jdbc

我正在尝试从Java连接到MySQL数据库(MySQL托管在WAMP服务器中)

String userName = "root";
String password = "pass";
String url = "jdbc:mysql://localhost/dbase";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (url, userName, password); 

当我从localhost运行时,连接正常。但是,当我从另一台计算机运行此代码替换localhost与我的计算机的IP(在同一网络内)时,我收到错误,

message from server: "Host '<name>' is not allowed to connect to this MySQL server"

我也尝试过端口3306。怎么了?

2 个答案:

答案 0 :(得分:5)

这是数据库方面的权限问题;您需要向用户root授予权限才能从您的特定IP地址进行连接。

这样的事情应该有效:

GRANT ALL ON foo.* TO root@'1.2.3.4' IDENTIFIED BY 'PASSWORD';

另一方面;我不会使用root来访问数据库;您应该使用常规用户帐户。

答案 1 :(得分:2)

您不应该使用root帐户进行开发。要解决您的问题,请创建一个名为 dbasedev 的假设用户。

CREATE USER 'dbasedev'@'%' IDENTIFIED BY 'passw0rd!';
GRANT ALL PRIVILEGES ON *.* TO 'dbasedev'@'%';
FLUSH PRIVILEGES;

这将允许您从任何主机连接到具有用户ID:dbasedev,密码:passw0rd!的MySQL服务器。

这是@ Icarus答案的补充,我无法在评论中发布所有代码。