Java远程连接

时间:2016-10-19 16:25:53

标签: java mysql jdbc server relational-database

假设我的本地主机上有这个连接字符串:

public static Connection ConnectDB(){
    try{
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/supermarket", "root","");      
        return con;
    }

当我尝试从另一个系统连接到此系统时。我应该更改什么才能访问数据库?

说我的系统IP地址是:192.168.137.1

3 个答案:

答案 0 :(得分:1)

你的陈述将成为

Connection con = DriverManager.getConnection("jdbc:mysql://<IP Address>:<Port>/supermarket", "root",""); 

使用适当的IP和端口号

Connection con = DriverManager.getConnection("jdbc:mysql://192.168.137.1:6036‌​/supermarket", "root",""); 

答案 1 :(得分:1)

要远程访问mysql数据库,您需要考虑以下三点:

  1. 提供正确的远程服务器IP地址和端口
  2. 确保服务器的防火墙已正确配置为允许在服务器端口上进行远程访问
  3. 向用户授予必要的权限以允许远程访问
  4. 执行命令以授予用户从任何远程主机访问数据库的权限:

    GRANT ALL PRIVILEGES
    ON supermarket.*
    TO 'root'@'%'
    IDENTIFIED BY 'password';
    

答案 2 :(得分:1)

你的联系还可以。但localhost代表您的本地计算机IP。

您应该更改以下内容:

制作 db.properties 文件

connection=jdbc:mysql://192.168.137.1:6036‌​/supermarket
username=root
password=xyz

并在main方法中添加以下代码

public static Connection ConnectDB(){
    try{
       FileReader reader=new FileReader("db.properties");  

    Properties p=new Properties();  
    p.load(reader); 

        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection(p.getProperty("connection"),p.getProperty("username"),p.getProperty("password"));      
        return con;
    }