姜老师MySQL数据库培训精品班学习笔记
MySQL简介与前景 初识MySQL
MySQL数据库历史
MySQL分支版本
MariaDB
oracle MySQL
percona
Drizzle
MySOL & MariaDB
MariaDB没有核心存储引擎
更推荐Oracle MySQL
未来两者将越来越不兼容
MySQL
MariaDB
核心存储引擎
InnoDB
无,社区提供
多线程复制
MySQL5.7版本
MariaDB 10版本
商业支持
Oracle公司
SkySQL公司
开发驱动
用户需求与企业驱动
社区驱动
开发现状
代码重构
无重构计划
Oracle与MySQL的关系
有人担心“邪恶”的oracle公司干掉GPL协议的软件,但是不要忘记Oracle是这个星球上最懂数据的厂商
Oracle MySQL与Linux Redhat/SUSE没有什么不同
MySQL被收购的五年Oracle一直在提供资金与人员支持
很多历史遗留问题在Oracle公司下最终得到解决
MySQL数据库的应用
目前主要应用于互联网行业
主要应用于OLTP(Online Transaction Processing)业务
越来越多的传统企业开始转向MySQL数据库
MySQL & 传统商业数据库
-
MySQL
Oracle
Microsoft SOL Server
操作系统支持
跨平台
跨平台
仅Windows
免费与收费
社区版免费
根据License收费
根据License收费
服务器数量
较多
较少
较少
典型应用类似
OLTP
OLTP & OLAP
OLTP & OLAP
典型应用场景
互联网
传统企业
传统企业
应用趋势
越来越多的企业开始使用MySQL
去I0E
自主可控
MySQL数据库版本比较
MySQL 5.5
MySQL 5.6
MySQL 5.7
索引
全局读写锁,并发一般
全局读写锁,并发一般
锁优化,并发性能提升
多线程复制
不支持
基于库的多线程复制
基于组提交的多线程复制
数据一致性
半同步,数据有丢失
半同步,数据有丢失
无损复制,数据无丢失
半结构化数据
BLOB
BLOB
原生JSON格式
InnoDB全文索引
不支持
支持,但不支持中文
支持
地理空间索引
MyISAM支持
MyISAM支持
InnoDB也支持
事务组提交
有bug,不支持
支持
支持
MySQLDBA的工作前景与发展
MySQL相关从业人员
运维DBA
负责数据库的相关运维工作
监控数据库状态
搭建高可用集群
开发DBA
负责应用程序的建表
负责表的索引创建
审核开发SQL语句
内核DBA
负责数据库内核级开发
处理内核级的相关bug
跟踪最新数据库内核
MySQL的安装 MySQL5.6安装
MySQL5.6.28二进制安装包解压后目录中有INSTALL-BINARY文件,该文件中有MySQL的安装步骤可作为参考
MySQL5.6官方文档
安装注意事项:
如果当前服务器上已经安装过MySQL或mariadb,需要先卸载
注意每个操作步骤所在服务器目录位置
注意目录的权限
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 54 55 56 # (0)服务器环境准备 # 服务器信息:CentOS 7 64位 # (1)准备mysql-5.6.28的二进制安装包 wget -P /usr/local/src/ https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz # (2)创建MySQL软件的用户组和用户:mysql groupadd mysql useradd -r -g mysql -s /bin/false mysql # (3)解压安装包,并创建软连接 tar -zxvf /usr/local/src/mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ ln -s /usr/local/mysql-5.6.28-linux-glibc2.5-x86_64/ /usr/local/mysql # (4)修改MySQL文件的属组和属主 chgrp -R mysql /usr/local/mysql/ chown -R mysql /usr/local/mysql/ # (5)修改(创建)mysql配置文件信息 # 全局搜索 my.cnf,一般默认会有 /etc/my.cnf 文件,如果没有就新建 /etc/mysql/my.cnf mkdir -p /etc/mysql mv /etc/my.cnf /etc/mysql/ vim /etc/mysql/my.cnf # 修改 /etc/mysql/my.cnf 文件为如下内容 [client] [mysql] prompt=(\\u@\\h) [\\d]>\\_ [mysqld] port = 3306 user = mysql datadir =/mdata/mysql_test_data log_error = error.log # end # (6)创建MySQL的数据目录并修改目录属组和属主 mkdir -p /mdata/mysql_test_data chgrp -R mysql /mdata chown -R mysql /mdata # (6)初始化MySQL cd /usr/local/mysql # mysql5.6通过如下命令初始化安装mysql并不会有初始化密码 scripts/mysql_install_db --user=mysql # (7)修改MySQL相关目录权限 chown -R root /usr/local/mysql/ chown -R mysql /mdata # (8)后台启动MySQL /usr/local/mysql/bin/mysqld_safe --user=mysql & # 拷贝mysql的启动脚本,该脚本可以启停mysql cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server
MySQL5.7安装
MySQL5.7官方文档
安装注意事项:
如果当前服务器上已经安装过MySQL或mariadb,需要先卸载
注意每个操作步骤所在服务器目录位置
注意目录的权限
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 54 55 56 57 58 59 60 61 # (0)服务器环境准备 # 服务器信息:CentOS 7 64位 # (1)准备mysql-5.7.16的二进制安装包 wget -P /usr/local/src/ https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz # (2)创建MySQL软件的用户组和用户:mysql groupadd mysql useradd -r -g mysql -s /bin/false mysql # (3)解压安装包,并创建软连接 tar -zxvf /usr/local/src/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64/ /usr/local/mysql # (4)修改MySQL文件的属组和属主 chgrp -R mysql /usr/local/mysql/ chown -R mysql /usr/local/mysql/ # (5)修改(创建)mysql配置文件信息 # 全局搜索 my.cnf,一般默认会有 /etc/my.cnf 文件,如果没有就新建 /etc/mysql/my.cnf mkdir -p /etc/mysql mv /etc/my.cnf /etc/mysql/ vim /etc/mysql/my.cnf # 修改 /etc/mysql/my.cnf 文件为如下内容 [client] [mysql] prompt=(\\u@\\h) [\\d]>\\_ [mysqld] port = 3306 user = mysql datadir =/mdata/mysql_test_data log_error = error.log # end # (6)创建MySQL的数据目录并修改目录属组和属主 mkdir -p /mdata/mysql_test_data chgrp -R mysql /mdata chown -R mysql /mdata # (6)初始化MySQL cd /usr/local/mysql # 注意 --initialize 和 --initialize-insecure 区别,前者会生成初始化密码 bin/mysqld --initialize --user=mysql bin/mysql_ssl_rsa_setup # (7)修改MySQL相关目录权限 chown -R root /usr/local/mysql/ chown -R mysql /mdata # (8)后台启动MySQL /usr/local/mysql/bin/mysqld_safe --user=mysql & # 拷贝mysql的启动脚本,该脚本可以启停mysql cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server # 查看初始密码 cat /mdata/mysql_test_data/error.log |grep password
MySQL安装成功后额外设置
1 2 3 4 5 6 vim /etc/profile export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin source /etc/profile
1 2 3 4 chkconfig --add /etc/init.d/mysql.server # 查看开机启动项 chkconfig --list
MySQL启动 1 2 3 cp support-files/mysql.server /etc/init.d/mysql.server /etc/init.d/mysql.server start /etc/init.d/mysql.server stop
MySQL登录
MySQL设置(修改密码) MySQL5.6设置密码
1 2 3 4 5 6 7 8 9 # 终端登录mysql后进行如下操作 set password = password('root'); flush privileges; # 或者使用下面方式 use mysql; delete from mysql.user where user <> 'root' or host <> 'localhost'; update mysql.user set password=PASSWORD('root') where user='root' and host = 'localhost'; flush privileges;
MySQL5.7设置密码
MySQL5.6安装后有初始密码,该密码在error.log文件中
1 2 3 # 终端登录mysql后进行如下操作 set password = 'root'; flush privileges;
MySQL5.6安装 VS MySQL5.7安装
MySQL5.6与MySQL5.7在安装上有细微差别,主要在初始化数据库方式 ,设置初始密码 等方面不同
如果想要MySQL5.7安装时不生成初始化密码,则使用bin/mysqld --initialize-insecure --user=mysql
命令进行初始化即可
版本
初始化数据库方式
设置密码
MySQL5.6
scripts/mysql_install_db --user=mysql
set password = password('root');
MySQL5.7
bin/mysqld --initialize --user=mysql
set password = 'root';
MySQL升级 概述
MySQL支持小版本间升级(例如:5.6升级到5.7)
升级前一定要备份好数据库(源文件和数据文件),以便意外情况进行恢复
MySQL5.6升级到MySQL5.7实战 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 # (1)对MySQL5.6进行全库备份 mysqldump -uroot -proot --all-databases > /usr/local/src/mysql_all.sql # (2)停止MySQL5.6 # 查看MySQL5.6运行状态 /etc/init.d/mysql.server status # 停止MySQL5.6 /etc/init.d/mysql.server stop # 查看MySQL5.6运行状态,确保已经MySQL5.6已经停止运行 /etc/init.d/mysql.server status # 查看MySQL进程,确保已经MySQL已经停止运行 ps -ef |grep mysql netstat -tnpl|grep :3306 # (3)准备mysql-5.7.16的二进制安装包 wget -P /usr/local/src/ https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz tar -zxvf /usr/local/src/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ # (4)修改软连接 unlink /usr/local/mysql ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql # (5)启动MySQL /etc/init.d/mysql.server start # (6)登录数据库验证版本 select version(); # 注意,此时还没有彻底升级完成 # 查看error.log日志,会发现有如下报错 [ERROR] Column count of performance_schema.events_stages_current is wrong. Expected 12, found 10. Created with MySQL 50628, now running 50716. Please use mysql_upgrade to fix this error. # 此报错信息提示我们,需要使用 mysql_upgrade 修复数据库 # 根据实际情况进行修复,因为MySQL5.7数据完全兼容MySQL5.6,所以这里我们只升级系统表 mysql_upgrade -s -uroot -p # 重新启动MySQL,观察error.log日志,发现没有error信息了
MySQL降级
MySQL的配置文件 概述
MySQL最佳配置文件模板
文件名:my.cnf(my.ini)
文件性质:文本文件
可有多个配置文件,遵循参数替换原则
修改元数据 要执行 flush privilieges 才生效
1 2 3 [root@localhost ~]# mysql --help | grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf /usr/local/mysql/my.cnf ~/.my.cnf
MySQL启动的时候会按上述文件顺序依次读取配置文件中的配置信息(如果配置文件存在),且如果存在相同的配置,后面的配置会覆盖之前的配置
配置文件参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 mysqld --help --verbose show variables like 'innodb%'; show session variables like 'innodb%'; show global variables like 'innodb%'; # 查看当前数据库的连接线程 show processlist; use performance_schema; select * from threads; select * from variables_by_thread where variable_name = 'long_query_time';
用户权限管理 概述
常用权限
SQL语句 :SELECT、INSERT、UPDATE、DELETE、INDEX
存储过程 :CREATE ROUTINE、ALTER ROUTINE、EXECUTE、TRIGGER
管理权限 :SUPER、RELOAD、SHOW DATABASE、SHUTDOWN、GRANT OPTION
权限相关SQL
注意:虽然可以在创建用户的同时给用户授权,但不建议(因为mysql会报警,之后的mysql版本可能会取消该授权并创建用户的语法)
1 2 3 4 5 6 7 8 9 10 create user 'david' @'%' identified by '111111' ;drop user 'david' @'%' ;# 创建用户但没有密码 create user 'amy' @'%' ;# 注意:虽然可以在创建用户的同时给用户授权,但不建议(因为mysql会报警,之后的mysql版本可能会取消该授权并创建用户的语法) grant select ,update ,insert ,delete on test.* to 'amy' @'%' identified by '111111' ;revoke create ,index on test.* from 'david' @'%' ;
MySQL(8.0)中的角色 1 2 3 4 5 6 7 8 9 --创建Role create role senior dba, app dev;grant all on *.* to senior dba with grant option;grant select,insert,update,delete on wp.* to app dev; --用户与角色绑定 create user tom@'192.168.1.%'identfied by '123';grant senior dba to tom@'192.168.1.%'; --显示用户权限 show grants for'tom'@'192.168.1.%'; 'tom'@'192.168.1.%'using senior dba;show grants for --删除角色 drop role senior dba;
SSL加密连接与密码插件(todo)
MySQL的启动与关闭 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 后台启动,会话不会阻塞 mysqld --defaults-file=/etc/my.cnf & # mysqld_safe 是一个可执行的shell脚本,mysqld_safe 来启动mysql的话,后台会有两个进程(mysqld 和 mysqld_safe),mysqld_safe 进程是守护进程,会定期检测mysqld进程是否存在,不存在则启动该进程 mysqld_safe & # 关闭mysql的方式 # 命令行,也需要密码登录进去才能关闭 mysql> shutdown # 使用mysqladmin 但需要密码 mysqladmin -p -uroot shutdown # 不需要密码(因为使用kill -0 来关闭的mysql进程) /etc/init.d/mysql.server stop # kill -9 强制关闭,kill -0 是一个安全关闭
1 2 3 update user set authentication_string = password('111laaA_') where user='root'and host='localhost' flush privileges;
MySQL多实例安装 概述
一台服务器上可以安装多个MySQL实例(MySQL原生很早就支持)
充分利用硬件资源
通过mysqld_multi程序管理多个实例即可
也可以把最初安装的mysql添加到mysqld_multi
进行统一管理,即可以把所有mysql实例使用mysqld_multi
统一管理
MySQL5.7多实例安装实战 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 vim /etc/mysql/my.cnf # 添加如下内容 # [mysqld_multi] 是告诉mysql当前启动时调用的程序是那些,关闭时候调用的程序是哪些 [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin log = /usr/local/mysql/mysqld_multi.log # 配置一个实例的相关信息 [mysqld3307] port = 3307 datadir = /mdata/mysql_3307_data socket = /tmp/mysql.sock3307
1 2 3 4 5 6 mkdir -p /mdata/mysql_3307_data chown mysql:mysql -R /mdata/mysql_3307_data # 注意等号前后不要有空格 # 不能使用 --initialize-insecure? mysqld --initialize --datadir=/mdata/mysql_3307_data
1 2 3 4 5 6 7 8 9 10 11 # 查看mysql实例的状态 mysqld_multi report # 启动mysql3307这个实例 mysqld_multi start 3307 # 查看初始密码 cat /mdata/mysql_3307_data/error.log |grep password # 客户端登录 mysql -uroot -p -P3307 -S /tmp/mysql.sock3307
注意事项
如果 mysqld_multi stop 3307
无法停止mysql,需要在配置文件的[mysqld_multi]下添加如下内容
1 2 3 [mysqld_multi] user = root pass = root
注意:如果安装了多个实例,需要保持有一个同样的用户名和密码,否则密码或用户不匹配无法使用mysqld_multi stop
停止mysql的实例
可以把所有mysql实例使用mysqld_multi
统一管理
多实例安装情况下的my.cnf配置文件 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 [client] socket = /tmp/mysql.sock [mysql] prompt=(\\u@\\h) [\\d]>\\_ [mysqld] port = 3306 user = mysql datadir =/mdata/mysql_test_data log_error = error.log [mysqld_multi] user = root pass = root mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin log = /usr/local/mysql/mysqld_multi.log [mysqld3306] port = 3306 datadir =/mdata/mysql_test_data socket = /tmp/mysql.sock [mysqld3307] port = 3307 datadir = /mdata/mysql_3307_data socket = /tmp/mysql.sock3307 [mysqld3308] port = 3308 datadir = /mdata/mysql_3308_data socket = /tmp/mysql.sock3308
MySQL多实例安装不同版本
MySQL多实例安装MySQL5.6和MySQL8.x
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 # (1)准备好mysql5.6和mysql8.0的安装包 lrwxrwxrwx. 1 root root 46 Jul 17 20:35 mysql -> /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64/ lrwxrwxrwx. 1 root root 35 Jul 18 18:49 mysql56 -> mysql-5.6.28-linux-glibc2.5-x86_64/ drwxr-xr-x. 13 root root 227 Jul 18 18:52 mysql-5.6.28-linux-glibc2.5-x86_64 drwxr-xr-x. 10 root mysql 162 Jul 17 21:05 mysql-5.7.16-linux-glibc2.5-x86_64 lrwxrwxrwx. 1 root root 39 Jul 18 19:05 mysql80 -> mysql-8.0.0-dmr-linux-glibc2.12-x86_64/ drwxr-xr-x. 9 root root 129 Jul 18 19:05 mysql-8.0.0-dmr-linux-glibc2.12-x86_64 # (2)在my.cnf配置好相关模块 [mysqld2306] server-id=2306 port=2306 innodb_buffer_pool_size=32M basedir=/usr/local/mysql56/ datadir=/mdata/mysql_2306_data socket=/tmp/mysql.sock2306 [mysqld4306] server-id=4306 port=4306 innodb_buffer_pool_size=32M basedir=/usr/local/mysql80/ datadir=/mdata/mysql_4306_data socket=/tmp/mysql.sock4306 # (3)创建好对应的mysql data目录(注意修改权限) # (4)初始化mysql 5.6 和 8.0 cd /usr/local/mysql80/ bin/mysqld --initialize --user=mysql --datadir=/mdata/mysql_4306_data/ cd /usr/local/mysql56/ scripts/mysql_install_db --user=mysql --datadir=/mdata/mysql_2306_data/ # (5)启动mysql5.6 和 8.0,修改密码 (注意mysql6 没有初密码且其设置密码的方式)
数据库架构 数据库与数据库实例
数据库 :物理操作系统文件或其他形式文件类型的集合
数据库实例 :
由数据库后台进程/线程以及一个共享内存区组成
共享内存可以被运行的后台进程/线程所共享
数据库实例才是真正用来操作数据库文件的
MySQL数据库中实例与数据库是一对一之间的关系(不同于oracle的RAC架构)
常见体系结构
单进程多线程
Like Microsoft SOL Server
Oracle多进程架构
插件式存储引擎架构
MySQL系统架构:略
MySQL逻辑存储结构
MySQL物理存储结构
数据文件路径
一个数据库对应一个文件夹
每张表对应一组文件
.frm文件(存储数据库表结构)
.MYD文件
.MYI文件
mysql的information_schema库中没有表,表都是视图,存储在内存中
mysqld的配置文件还可以有如下配置标签
1 2 3 4 5 6 7 [mysqldump] quick [mysqladmin] force [mysqld-5.61]
MySQL主要文件
数据库配置文件
表结构定义文件
错误文件
慢查询日志
通用日志
错误日志(参数 log_error):
默认名:机器名.err
建议统一修改成一个固定的名称,例如mysql.err
1 2 [mysald] log error = mysql.err
1 2 3 [mysqld safe] syslog syslog tag=stock #mysqld stock
mysql官方的mysql-utilities工具可以使用mysqlfrm来静态分析数据库的.frm文件
表结构文件.frm是一个二进制文件
慢查询日志 概述
将运行超过某个时间阈值的SQL语句记录到文件
MySQL5.1开始可以以毫秒为单位记录运行的SQl语句
MySQL 5.5开始可以将慢查询保存到表
MySQL5.6开始可以更细粒度的记录慢查询
MySQL5.7将时区信息写入到慢查询日志
慢查询日志相关参数
参数
说明
版本说明
slow_query_log
是否开启慢查询日志
slow_query_log_file
慢查询日志文件名
long_query_time
指定慢查询阈值
5.5 毫秒支持
min_examined_row_limit
扫描记录少于该值的SQL不记录到慢查询日志
log-queries-not-using-indexes
将没有使用索引的SQL记录到慢查询日志
log_throttle_queries_not_using_indexes
限制每分钟记录没有使用索引SQL语句的次数
5.6
log-slow-admin-statement
记录管理操作,如ALTER/ANALYZE TABLE
log_output
慢查询日志的格式,{FILE|TABLE|NONE)
5.5
log_slow_slave_statements
在从服务器上开启慢查询日志
log_timestamps
写入时区信息
5.7
1 2 3 4 5 select sleep(5) flush slow logs bind-address = 10.166.224.32
通用日志
可以记录数据库所有相关操作
参数:general_log
默认文件名:机器名.og
同样可以将日志保存到表
开启性能下降明显
存储引擎概念
用来处理数据库的相关CRUD操作
每个数据库都有存储引擎概念
Oracle数据库
MySQL存储引擎 概述
官方存储引擎
MyISAM
InnoDB
Memory
Federated
CSV
Archive
第三方存储引擎
查看当前MySQL支持的存储引擎:show engines
启动时可以禁用某些存储引擎
–skip-archive
–skip-blackhole
MyISAM
MySQL5.1版本之前的默认存储引擎
堆表数据结构
表锁设计
支持数据静态压缩
不支持事务
数据容易丢失
索引容易损坏
唯一的优点:数据文件可以直接拷贝到另一台服务器使用
数据文件:.MYD
索引文件:.MYI
修复错误数据表:myisamchk
Memory
全内存存储的引擎
数据库启动后数据丢失
支持哈希索引,哈希索引仅支持等值查询
不支持事务
Memory存储引擎是不能禁用的
MySQL内部的排序操作的临时表使用该存储引擎
参数max heap table size决定使用的大小:默认大小:16M
内存放不下时转为MyISAM表:注意临时路径空间大小
内存使用为会话级别
小OOM
CSV
不支持特殊字符
使用相当广泛
CSV是一种标准文件格式
文件以纯文本形式存储表格数据
Federated
允许本地访问远程MySQL数据库中表的数据
本地不存储任何数据文件
类似于Oracle中的透明网关
仅支持MySOL=>MySQL的访问
不支持数据库的访问
Fedorated存储引擎默认不开启
异构数据库远程访问
远程数据库连接字符串:scheme://user name[:password]@host name[:port num]/db_name/tbl_name
存储引擎物理特性
初始分配较小的内存块,内存使用量逐渐增大
哈希表使用动态哈希技术,通过链表管理空闲空间
引擎采用固定长度存储数据,VARCHAR其实以CHAR方式进行存储
数据类型支持,不支持BLOB和TEXT类型
Memory支持自增列属性,可以创建自增主键
数据类型
Reference
英文单词 1 2 3 4 5 initialize # 初始化 insecure # 不安全的 multi # 多 report # 报告 privilege # 权限
MySQL降级抽空可以了解一下
information_schema 记录了元数据信息
mysql 这个库 记录了用户信息,performance_schema 记录了数据库的性能监控信息
sys 5.7 新增的表 对 performance_schema 的表进行整理,里面有视图
MySQL自动化安装脚本(作业,待完成)
mysql配置参数这块 可以参考阅读《MySQL是怎样允许的》其中讲得比较详细
了解 mysql创建用户默认有哪些权限
权限这块内容可能还需要再看一遍,并做好笔记
角色这块还需要深入了解一下
1 2 3 4 5 <font color =red > </font > ![]() <img src ="" title ="图片名称" alt ="图片无法正常加载展示!" width ="100%" height ="100%" > <img src ="" width ="70%" > ****