同学, MySQL 数据库,一般指的 MySQL 服务端。但是 MySQL 自己呢也有一个客户端。就是我们使用 mysqlshell 窗口中连接数据库时,其实这就是以一个客户端的身份去连接到 MySQL 的服务端的。

本章,就介绍下常用连接数据库的方式:

  • MySQL client 连接
  • Java - JDBC 原生的连接
  • Python 连接
  • go 连接

# MySQL client 连接数据库

这种连接方式,在上一章 MySQL 数据库的安装中我们已经使用过了。这里呢我们再详细的介绍一下。

首先,我们使用 mysql --help 命令,查看 mysql 命令可以拼接的参数。回车之后,我们可以看到很多的参数

本篇文章主要列举下,连接用到的参数:

  • -h : host ,表示需要连接的主机地址。 默认是 localhost
  • -P : port , 表示要建立连接的主机端口。默认是 3306
  • -u : user , 表示建立连接使用的用户名。 默认是 root
  • -p : password , 表示建立连接使用的密码。

建立连接时,完整的命令是: mysql -h 127.0.0.1 -P 3306 -u root -p 表示使用 root 用户,连接 127.0.0.13306 端口。
回车之后,输入密码,回车,即可登陆成功。

10301-登录数据库.png

在明白了这几个选项之后,我们可以使用 mysql -p 来登录本机的 MySQL 服务端。

10302-登录数据库.png

建立连接之后,怎么退出呢?有三种方式可以退出。

  • 输入 exit 命令
  • 输入 quit 命令
  • 使用 control + D

# 使用 JDBC 连接 MySQL 数据库

首先我们使用 MySQL-client 连接上数据库,用下面的命令去创建一个数据库和完成建表操作

1
2
3
4
5
6
7
8
9
10
mysql> drop database test01_jdbc;
Query OK, 0 rows affected (0.08 sec)

mysql> create database test01_jdbc;
Query OK, 1 row affected (0.06 sec)

mysql> use test01_jdbc;
Database changed
mysql> create table test1(id int primary key auto_increment, value int );
Query OK, 0 rows affected (0.29 sec)

接下来,你可以直接复制下面的代码,到你的编辑器里进行执行。源码我放到 github 里了。地址在公众号里哦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class JDBCDemo {
public static void main(String[] args) {

Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {

// 1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 换成你的数据库地址
String url = "jdbc:mysql://10.127.138.75:3306/test01_jdbc";
String username = "root";
String password = "123456";
/// 获取连接
connection = DriverManager.getConnection(url, username, password);
String sql = "show tables";
// 创建 Statement
preparedStatement = connection.prepareStatement(sql);
// 执行结果,获取resultSet
resultSet = preparedStatement.executeQuery();
// 处理结果
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
// 关闭连接
if(null!=resultSet) {
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(null!=preparedStatement) {
try {
preparedStatement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(null!=connection) {
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
}

执行结果:

1
test1

这里呢,就简单的理解下, Java 连接 MySQL 服务端的过程。实际的开发中也不会遇到这种写法,但是都是使用这种原理进行了封装和优化,比如数据库的连接池的使用。这里就理解下,使用 Java 实现了数据库的客户端连接。

其他语言连接数据库的方式,我放到 github 仓库里。有需要的自取哈。在公众号里回复【连接数据库】就可以获取啦~

最后,希望和你成为朋友,一起交流~

qrcode.jpg