MySQL5.7 笔记

MySQL5.7 笔记

参考 MySQL5.7参考手册

基本信息

重新加载授权表: FLUSH PRIVILEGES

每张表最大支持 64 个索引,每个索引可以由 1 到 16 列组成。InnoDB 的表格最大支持索引大小 767 字节或 3072 字节。

MySQL5.7 新增功能 EXPLAIN 可用于获取在命名连接中执行的可解释语句的执行计划:

安装

下载地址

Linux 下安装

md5校验: md5sum mysql-standard-5.7.24-linux-i686.tar.gz

MySQL依赖于libaio 库。如果此库未在本地安装,则数据目录初始化和后续服务器启动步骤将失败。如有必要,请使用适当的软件包管理器进行安装。例如,在基于Yum的系统上:

1
2
shell> yum search libaio  # search for info
shell> yum install libaio # install library

或者,在基于APT的系统上:

1
2
shell> apt-cache search libaio # search for info
shell> apt-get install libaio1 # install library

目录:

目录 目录的内容
bin mysqld服务器,客户端和实用程序
docs MySQL手册的Info格式
man Unix手册页
include 包含(标题)文件
lib 依赖库
share 用于数据库安装的错误消息,字典和SQL
support-files 其他支持文件

安装命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
shell> groupadd mysql # 创建组 mysql
shell> useradd -r -g mysql -s /bin/false mysql # 添加用户到 mysql 组
shell> cd /usr/local # 进入安装目录
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz # 解压文件
shell> ln -s full-path-to-mysql-VERSION-OS mysql # 软链接,也可以直接修改解压后的文件,之后可将 mysql 加入环境变量
shell> cd mysql # 进入 mysql 目录
shell> mkdir mysql-files # 创建文件价
shell> chown mysql:mysql mysql-files # 修改文件所有者
shell> chmod 750 mysql-files # 修改文件权限
shell> bin/mysqld --initialize --user=mysql # 使用 mysql 用户安装 mysql 服务
shell> bin/mysql_ssl_rsa_setup # 按照 ssl 加密连接
shell> bin/mysqld_safe --user=mysql & # 启动 mysql
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server # 生成 mysql 服务

Windows 下安装

md5命令行实用程序的Windows实现可从 http://www.fourmilab.ch/md5/ 获取

md5校验: md5.exe mysql-installer-community-5.7.24.msi

目录:

目录 目录的内容 笔记
bin mysqld服务器,客户端和实用程序
%PROGRAMDATA%\MySQL\MySQL Server 5.7\ 日志文件,数据库 Windows系统变量 %PROGRAMDATA%默认为 C:\ProgramData。
docs 发布文档 使用MySQL安装程序,使用该Modify操作选择此可选文件夹。
include 包含(标题)文件
lib 依赖库
share 其他支持文件,包括错误消息,字符集文件,示例配置文件,用于数据库安装的SQL

Docker 下安装

获取镜像:

docker pull mysql/mysql-server:tag tag 可以是 5.6, 5.7 等版本号

创建容器:

docker run --name mysql1 -d -p 3306:3306 mysql-server:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_col

连接测试:

docker exec -it myapp1 mysql -uroot -p

MySQL系统变量配置

参考 MySQL服务器系统变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

[mysqld]
## 字符集设置
character-set-server=utf8
collation-server=utf8_general_ci

## 忽略表名称大小写
lower_case_table_names=1

## 连接超时时间
wait_timeout=31536000
interactive_timeout=31536000

## max connections
max_connections=2000
max_connect_errors=10000

max_allowed_packet=500m