我正在尝试使用java中的JDBC工具(使用eclipse)连接到MySQL服务器。我只是想知道如何输入2个用户/密码组合。第一个是我用来连接服务器的(例如当我进入服务器时),第二个是我输入phpmyadmin。截至目前,我只将phpmyadmin密码输入到jdbc连接属性中并且它没有连接。这是我目前的陈述:
conn = DriverManager.getConnection("jdbc:mysql://[IP of server]:3306/[Database Table name]", "[UserName (same as phpmyadmin)]","[Password (same as phpmyadmin)]");
我正在
java.sql.SQLException: null, message from server: "Host '[My computer's full host name]' is not allowed to connect to this MySQL server"
我只是想知道我是否需要输入我的服务器登录/密码(我用于ssh的那个)以及phpmyadmin用户名/密码。我是JDBC和MySQL服务器的新手,所以我很感激任何提示。
仅为后台,我能够通过ssh成功连接,我可以通过phpmyadmin登录服务器。
答案 0 :(得分:6)
以下是如何创建可以从其他客户端计算机访问服务器的帐户:
CREATE USER 'bobby'@'localhost' IDENTIFIED BY 'some_password';
创建用户,并说他可以从localhost连接。
如果他在机器192.168.0.5上,你会做这样的事情:
CREATE USER 'bobby'@'192.168.0.5' IDENTIFIED BY 'some_password';
当然,你必须适当地授予权限:
GRANT ALL PRIVILEGES ON databasename.* TO 'bobby'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON databasename.* TO 'bobby'@'192.168.0.5' WITH GRANT OPTION;
无论如何,那是我的经历。
答案 1 :(得分:3)
从PHPMyAdmin登录时,Web服务器位于托管Mysql数据库的同一台服务器上(在您的情况下)。默认情况下,Mysql不允许来自远程主机的连接;只有本地机器才能访问数据库。
我会在黑暗中拍摄并说你运行java代码的计算机与托管mysql服务器的计算机不同。您必须将Mysql配置为允许通过配置文件从远程主机进行连接,然后更改指定用户的mysql
。users
表的主机行,以允许从您的IP地址进行连接(或者,如果安全性不是你关心的,任何IP地址。)
要配置mysql以允许来自远程主机的连接,您必须从配置文件中删除“bind-address =”行。
要允许任何主机登录到特定的mysql用户,您必须将mysql
。users
主机`列设置为“%”。
必须完成这两项工作。
答案 2 :(得分:1)
public class MysqlConnect{
public static void main(String[] args) {
System.out.println("MySQL Connect Example.");
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "jdbctutorial";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "root";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
System.out.println("Connected to the database");
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e) {
e.printStackTrace();
}
}
}