java代码连接MySql不能通过IP访问的解决方法,只能localhost 和 127.0.0.1访问

编写了一段代码测试数据库连接,用本机的各种IP进行测试连接mysql数据库,用127.0.0.1和localhost 访问都是没有问题的,能够正常访问数据库,但是用IP不能访问。经过测试后,找到正确方法贴上。

代码如下:

package com.jr;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class testmysql {
    public static void main(String[] args){
        //String URL="jdbc:mysql://127.0.0.1:3306/hadoopdb?";

         //String URL="jdbc:mysql://localhost:3306/hadoopdb?";
        //String URL="jdbc:mysql://192.168.2.1:3306/hadoopdb?";                //VMnet1 IP
        //String URL="jdbc:mysql://192.168.1.9:3306/hadoopdb?";                //无限局域网IP
        String URL="jdbc:mysql://192.168.193.1:3306/hadoopdb?";              //VMnet8 IP
        String USER="admin";
        String PASSWORD="123456";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery("select * from users");
            while(rs.next()) {
                System.out.println(rs.getString("name"));
            }
            rs.close();
            st.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

本机IP:

 

 

 

一般新安装的mysql数据库默认是不开启ip访问的,这样我们在应用与数据库不在同一服务器时就需要开启这种模式,

解决方法:

cmd方式进入mysql命令行进入mysql的bin目录下,比如数据库用户名为root,密码为 123456

mysql –uroot –p123456       //登陆mysql ,

use mysql;               //切换到mysql数据库

update user set host='%' where user='root' and host='localhost';       //修改host为通配符,任何ip都可访问

grant all privileges on *.* to ’root’@’%’ identified by ’root’;             //赋予root权限 
flush privileges; //                在不重启的情况下生效或者重启mysql服务,将配置刷进内存 

以上步骤就可以使IP可以连接了,如果还不能连接就重启mysql服务

5.重新启动mysql

进入到mysql 的bin目录下

先关闭mysql数据库: net stop mysql

然后重新启动mysql数据库:  net start mysql

完毕。

再进eclipse运行代码即可成功了。我是以上各种网卡的IP都测试成功。

 

<think>好的,我现在需要帮助用户解决Java IDEA中连接MySQL数据库时如何确定MySQL服务器的IP地址的问题。首先,我需要回顾用户提供的引用内容,看看是否有相关的信息。 用户提供了四个引用,其中引用[2]引用[3]提到了在IDEA中连接MySQL的步骤,包括添加驱动设置URL。引用[3]中的URL是`jdbc:mysql://127.0.0.1:3306/test`,这里使用了127.0.0.1作为本地IP地址。这说明默认情况下,如果MySQL安装在本地,可以使用localhost127.0.0.1作为IP地址。 接下来,用户的问题是确定MySQL服务器的IP地址。如果MySQL在本地,通常使用127.0.0.1localhost。但如果数据库在远程服务器上,用户需要知道该服务器的实际IP。这时候可能需要通过命令行工具或者查看网络配置来获取。 引用[4]提到使用JDBC连接需要驱动包,并且URL的结构是重要的。因此,正确的IP地址是连接字符串中的关键部分。如果用户不确定IP,可能需要指导他们如何查找本地或远程MySQL服务器的IP地址,例如通过命令行执行`ipconfig`(Windows)或`ifconfig`(Linux/Mac),或者查看MySQL的配置文件(如my.cnf或my.ini)中的bind-address设置。 另外,引用[2]中提到在IDEA中添加数据库连接时选择MySQL类型,这里可能需要用户输入主机名或IP地址。如果用户是在本地开发,直接使用127.0.0.1即可;如果是远程,则需要服务器的真实IP,并确保防火墙允许3306端口的连接。 总结,回答应该分步骤说明如何在本地远程情况下确定MySQLIP,并指导如何在IDEA中正确配置连接URL。同时,需要确保用户理解如何测试连接是否成功,比如使用命令行工具或IDEA内置的数据库工具进行连接测试。</think>### 如何在Java IDEA中连接MySQL数据库时确定MySQL服务器的IP地址? #### 步骤1:确认MySQL服务器的运行位置 - **本地MySQL服务器**:若MySQL安装在本地计算机,默认IP地址为$127.0.0.1$或$localhost$[^2][^3]。 - **远程MySQL服务器**:需向服务器管理员获取实际IP地址(如$192.168.1.100$)。 #### 步骤2:通过命令行工具查询本地IP(适用于本地开发) 1. **Windows系统**: - 打开命令提示符,输入`ipconfig`,查看`IPv4地址`(例如$192.168.1.5$)。 2. **Linux/Mac系统**: - 打开终端,输入`ifconfig`(或`ip addr`),查找`inet`对应的IP地址。 #### 步骤3:检查MySQL配置(若需要远程连接) - 查看MySQL配置文件(如`my.cnf`或`my.ini`),确认`bind-address`是否允许远程访问。若值为$0.0.0.0$,表示允许所有IP连接[^4]。 #### 步骤4:在IDEA中配置数据库连接 1. **添加MySQL驱动**: - 将`mysql-connector-java-*.jar`文件添加到项目依赖中。 2. **配置连接URL**: ```java // 示例代码IP地址替换为实际值 ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/test?useSSL=false"); ``` - 将`127.0.0.1`替换为目标IP地址(本地或远程)[^3]。 3. **测试连接**: - 在IDEA的数据库工具中输入IP、端口、用户名密码,点击“Test Connection”验证是否成功。 #### 常见问题排查 - **连接失败**:检查防火墙是否开放$3306$端口,或MySQL用户权限是否允许从目标IP访问。 - **驱动错误**:确保驱动版本与MySQL服务器版本兼容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值