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都测试成功。

猜你喜欢

转载自blog.csdn.net/nengyu/article/details/85010560
今日推荐