如何使用Java连接到远程MySQL数据库?

时间:2010-02-23 12:59:58

标签: java mysql eclipse jdbc

我正在尝试使用Eclipse IDE创建一个JSF应用程序。我使用远程mySQL服务器作为我的数据库。如何连接到此远程数据库以创建表并访问它们?

8 个答案:

答案 0 :(得分:41)

只需在数据库连接字符串中提供远程计算机的IP /主机名,而不是localhost。例如:

jdbc:mysql://192.168.15.25:3306/yourdatabase

确保没有防火墙阻止访问端口3306

此外,请确保允许您连接的用户从此特定主机名进行连接。对于开发环境,'username'@'%'可以安全地执行此操作。查看the user creation manualGRANT manual

答案 1 :(得分:9)

您需要在连接字符串中传递远程计算机的IP /主机名。

import java.sql.*;
import javax.sql.*;

public class Connect
{
   public static void main (String[] args)
   {
       Connection conn = null;

       try
       {

           String url = "jdbc:mysql://localhost:3306/mydb";
           Class.forName ("com.mysql.jdbc.Driver");
           conn = DriverManager.getConnection (url,"root"," ");
           System.out.println ("Database connection established");
       }
       catch (Exception e)
       {
           e.printStackTrace();

       }
       finally
       {
           if (conn != null)
           {
               try
               {
                   conn.close ();
                   System.out.println ("Database connection terminated");
               }
               catch (Exception e) { /* ignore close errors */ }
           }
       }
   }
}

答案 2 :(得分:4)

要从远程计算机访问数据库,您需要为您的数据库授予所有权限。

运行以下脚本以授予权限: 在上授予所有特权。对用户@'%'通过'密码';

识别

答案 3 :(得分:2)

另外,你应该确保MySQL服务器的配置(Debian上的/etc/mysql/my.cnf,/ etc / default / mysql)没有激活“skip-networking”并且没有专门绑定到环回接口(127.0.0.1),也是您想要连接的接口/ IP地址。

答案 4 :(得分:1)

  1. 在架构'mysql'(mysql.user)中创建一个新用户 在mysql工作区中运行此代码 “GRANT ALL ON . to user@'%'IDENTIFIED BY '';

  2. 在拥有数据库的机器上打开'3306'端口。 Control Panel -> Windows Firewall -> Advance Settings -> Inbound Rules -> New Rule -> Port -> Next -> TCP & set port as 3306 -> Next -> Next -> Next -> Fill Name and Description -> Finish ->

  3. 尝试通过包含数据库服务器IP的cmd上的telnet消息进行检查

答案 5 :(得分:1)

关闭所有打开的连接&连接到服务器侦听端口,无论是来自应用程序或客户端工具(navicat)还是运行服务器(apache或weblogic)。首先关闭所有连接,然后重启所有工具MySQL,apache等。

答案 6 :(得分:0)

在my.cnf文件中,请更改以下内容

##而不是跳过网络,现在只能监听默认值  ## localhost,它更兼容,安全性也不差。  ## bind-address = 127.0.0.1

答案 7 :(得分:0)

在Ubuntu上,创建用户的localhost版本和'%'版本,并为这两个版本授予对database.tables的适当访问权限后,我不得不注释掉/etc/mysql/mysql.conf中的'bind-address'。 d / mysql.cnf并以sudo重启mysql。

绑定地址= 127.0.0.1