目录
Java与MySQL
上一篇笔记已经写好了MySQL的安装使用与Java连接MySQL的操作,但那仅仅是本地连接,我们都知道我们一般都是通过远程来管理数据库中的数据和远程提供数据给客户看,要实现远程连接数据库呢就有以下几个步骤:
1.MySQL远程连接情况
1.1.查看权限情况
- 首先要看一下MySQL用户对外的开放权限,执行命令select user,host from mysql.user,如下图:
- 查看端口的开放情况,MySQL默认端口是3306,因此要查看3306端口的开放情况,输入的命令为netstat -a可查看,如下图:
- IP地址:我个人理解是设备在网络中的地址
- 端口:我个人理解是应用程序运行时所在设备中的位置
- 结论:我们要管理某设备上的数据库,那么就要有正确的IP地址和端口,当然还要输入MySQL用户的账号密码
- 综上所述,MySQL初始默认是不对外开放的,因此外部设备连接不到
1.2.Java连接情况
- 本地连接,如下图,设置url中的IP地址为127.0.0.1本地连接,连接成功:
- 本地连接自己可尝试,代码如下:
package com.example; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class App { public static void main(String[] args){ String url="jdbc:mysql://127.0.0.1:3306/student"; String user="root"; String password="1234"; try{ Connection con=DriverManager.getConnection(url, user, password); String sql="create table if not exists tbb(id int,name varchar(10),sex varchar(2));"; // 在数据库中创建tbb表 Statement state=con.createStatement(); int i=state.executeUpdate(sql); //创建完成后的返回值是整形 System.out.println(i); System.out.println("连接成功!"); }catch(Exception e){ System.out.println("连接失败!"); } } }
- 远程连接,需要先查看本机的IP地址,在终端输入ipconfig命令就可以查看,mac系统和Linux系统使用ifconfig命令查看
- 将代码的url中的127.0.0.1改为本机IP地址192.168.xxx.xxx即可,很显然连接失败:
2.MySQL远程连接设置
2.1.IP地址开放设置
- 这里有两个办法,一个是将root用户的localhost改为指定的IP用户连接或%,%表示所有IP用户皆可连接,当然更改root用户的做法不怎么好,因此用第二种办法就是创建一个新MySQL用户,并且设置host权限为%,然后再设置该用户管理数据库的权限
- 终端进入MySQL,输入create user '新用户名'@'%' identified by '该用户密码';命令,然后查看是否创建成功,如下图:
- 接下来,让我们为新建用户授权,不授权的话,新建用户无法操作数据库,这里我为了方便将给新建用户管理员权限,这个是最大权限,输入命令如下:当然这是mysql-8之后的命令GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION;
- 当然,有些小伙伴到这端口可能就自动打开,就可以用Java远程连接MySQL了,有些小伙伴还是不行,问题就是还差端口没有开放,接下来就是开放3306端口:
2.2.开放3306端口
- 在计算机左下角搜索框输入高级两个字,就可以看到高级安全,鼠标点击打开:
- 接着看下图:
- 最后一直下一步,直到有输入名称的窗口,随便填一个名称就行
- 完成以上步骤那么就可以愉快的用其他计算机远程操作MySQL数据库啦!
- 如上图,我成功了,你们呢?
3.总结
这里我的过程基本上都是用终端操作的,其实用图形化软件比如Navicat、SQLyog等软件来操作MySQL要简单很多
- 运用终端命令查看MySQL的IP开放权限
- 查看端口情况
- 运用Java代码运行本地连接和远程连接的情况
- 新建MySQL用户,并设置开放权限和管理权限
- 开放端口,到高级防火墙新建规则
- 测试,用其他电脑远程连接