[1] MySQL 基础知识和安装

84 阅读2分钟

MySQL 基础知识

1. 架构图

MySQL使用插件式的存储引擎 通过分层和可插拔式的架构,可以根据不同的生产环境构建最优的系统。 MySQL 大体上分为连接层, 服务层(进行SQL语句相关的操作), 引擎层和存储层 其中连接层负责接受校验外部连接, 保护MySql 安全, 服务层提供语句检查和语句优化器, 以及缓存匹配等服务, 引擎层实现插件模式, 可插拔的方式提供, 默认存储引擎为 InnoDB.

[1] MySQL 工作机制.png

2. SQL 语句执行顺序

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

[4] SQL 语句执行顺序.png

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] 查看存储引擎.png

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)

downloads.mysql.com/archives/ge…)

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

安装 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"
  • 更新前

    img

  • 更新后

    img

使用 JDBC 连接 MySQL (Java)

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

参数解释:

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