连接到MySQL服务器JDBC

时间:2012-06-18 04:31:53

标签: java mysql jdbc

我正在尝试使用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登录服务器。

3 个答案:

答案 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;

无论如何,那是我的经历。

你最好不要阅读this section on how to specify MySQL accounts

答案 1 :(得分:3)

从PHPMyAdmin登录时,Web服务器位于托管Mysql数据库的同一台服务器上(在您的情况下)。默认情况下,Mysql不允许来自远程主机的连接;只有本地机器才能访问数据库。

我会在黑暗中拍摄并说你运行java代码的计算机与托管mysql服务器的计算机不同。您必须将Mysql配置为允许通过配置文件从远程主机进行连接,然后更改指定用户的mysqlusers表的主机行,以允许从您的IP地址进行连接(或者,如果安全性不是你关心的,任何IP地址。)

要配置mysql以允许来自远程主机的连接,您必须从配置文件中删除“bind-address =”行。

要允许任何主机登录到特定的mysql用户,您必须将mysqlusers主机`列设置为“%”。

必须完成这两项工作。

答案 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();
  }
  }
}
相关问题