连接mysql数据库java
我正在尝试从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 '' is not allowed to connect to this MySQL server"
我也尝试过端口3306。 怎么了?
这是数据库方面的权限问题; 您需要向用户root
授予权限才能从您的特定IP地址进行连接。
像这样的东西应该工作:
GRANT ALL ON foo.* TO root@'1.2.3.4' IDENTIFIED BY 'PASSWORD';
另一方面; 我不会使用root
来访问数据库; 您应该使用常规用户帐户。
您不应该使用root帐户进行开发。 要解决您的问题,请创建一个名为dbasedev的假设用户。
CREATE USER 'dbasedev'@'%' IDENTIFIED BY 'passw0rd!'; GRANT ALL PRIVILEGES ON *.* TO 'dbasedev'@'%'; FLUSH PRIVILEGES;
这将允许您使用用户ID连接到MySQL服务器: dbasedev
,密码: passw0rd!
,来自任何主机。
这是@ Icarus答案的补充,我无法在评论中发布所有代码。