MySQL 基础知识

1. 架构图

MySQL是插件式的存储引擎

通过分层和可插拔式的架构,可以根据不同的生产环境构建最优的系统。

MySQL 大体上分为连接层, 服务层(进行SQL语句相关的操作), 引擎层和存储层

其中连接层负责接受校验外部连接, 保护MySql 安全, 服务层提供语句检查和语句优化器, 以及缓存匹配等服务, 引擎层实现插件模式, 可插拔的方式提供, 默认和常用的引擎为 InnoDB.

[1]  MySQL 基础知识与安装_MySQL

2. SQL 语句执行顺序

  • 先加载需要被查询的表, from, join, on
  • 执行 where 过滤条件
  • 执行分组数据 -> 分组结果支持执行 having 过滤
  • 查看 select 需要的列
  • order by 对结果进行排序
  • limit 对结果进行分页.

[1]  MySQL 基础知识与安装_mysql_02

MySQL 基本操作

1. 查看数据库, 切换库, 查看表操作

mysql> show databases; # 查看所有数据库结构
mysql> use mysql;      # 使用数据库
mysql> show tables;    # 查看目标数据库中的表
mysql> select * from admin;  # 基本查询

2. 查看表的存储引擎

mysql> SHOW TABLE STATUS from myemployees where name = 'mylock';

[1]  MySQL 基础知识与安装_ubuntu_03

3. 创建表

CREATE TABLE `user`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) engine innodb;

4. 增加项

-- 1. 插入一条或多条记录
insert into user(`username`, `password`) values('zhangsan', '123456'), ('lisi', '234567');

5. 修改项

-- 1. 修改全部列
update user set password = '666666';

-- 2. where限制修改部分列
update user set password = '666666' where id = 10;

6. 删除项

-- 1. 删除 user 表中所有数据
delete from user;

-- 2. 条件筛选删除 user 表中数据
delete from user where id > 10;

7. 删除表

-- 删除表
drop table user;

Ubuntu 安装MySQL 5.7

下载页面与下载地址

MySQL :: Download MySQL Community Server (Archived Versions)

https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.36-1ubuntu18.04_amd64.deb-bundle.tar)

下载完成后, 使用 tar 加压 MySQL 压缩包, 解压后如下

[1]  MySQL 基础知识与安装_mysql_04

安装 MySQL 命令顺序

sudo su  # 切换为 ROOT 用户.
dpkg -i libmysqlclient20_5.7.36-1ubuntu18.04_amd64.deb 
dpkg -i libmysqlclient-dev_5.7.36-1ubuntu18.04_amd64.deb 
dpkg -i libmysqld-dev_5.7.36-1ubuntu18.04_amd64.deb 
apt-get install libaio1 # 安装不上.
dpkg -i mysql-community-client_5.7.36-1ubuntu18.04_amd64.deb 
dpkg -i mysql-client_5.7.36-1ubuntu18.04_amd64.deb 
dpkg -i mysql-community-source_5.7.36-1ubuntu18.04_amd64.deb 
dpkg -i mysql-community-server_5.7.36-1ubuntu18.04_amd64.deb 
apt-get install libmecab2  # 设置 MYSQL ROOT 密码  deepcam
dpkg -i mysql-community-server_5.7.36-1ubuntu18.04_amd64.deb

配置 MySQL 准许外部访问

# 1. 修改 /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address	= 0.0.0.0

# 2. 修改 mysql.user表, 准许root 用户外部访问
use mysql;
# 更新 root 用户 主机允许其他机器访问
update user set host = '%' where user = 'root';
# 强制刷新.
flush privileges;
# 查询用户情况
select host, user from user where user="root"
  • 更新前

[1]  MySQL 基础知识与安装_ubuntu_05

  • 更新后

[1]  MySQL 基础知识与安装_ubuntu_06

使用 JDBC 连接 MYSQL (Java)

jdbc:mysql://172.22.7.15:3306/image_entries?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimeznotallow=Asia/Shanghai

  • 参数解释:
  • useSSL: 是否使用ssl连接
  • characterEncoding: 设置连接端编码使用 utf-8
  • serverTimezone: 设置服务器时区为 +8