特性一:
安全性增强了,具体的增强,有以下几点:
1,5.6安装好之后root是没有密码的,5.7会随机生成一个临时密码。或者在启动的时候–skip-grant-table ,更改密码。
2,密码可以设置自动失效的时间:5.7增加了Password_lifetime 这个字段,来设置密码自动失效的时间。这个参数可以在配置文件设置,也可以动态修改。
[mysqld]
default_password_lifetime=180(180天失效)
[mysqld]
default_password_lifetime=0(永不失效)
SET GLOBAL default_password_lifetime = 180;动态修改
ALTER USER ‘jeffrey’@’localhost’ PASSWORD EXPIRE INTERVAL 90 DAY;(设置某个用户90天失效)
ALTER USER ‘jeffrey’@’localhost’ PASSWORD EXPIRE NEVER;(用户密码永不失效)
ALTER USER ‘jeffrey’@’localhost’ PASSWORD EXPIRE DEFAULT;(使此用户按照global设置)
3,用户账户锁定:
在创建用户时,可以设置用户为锁状态,比如:
,
使用如下方式解锁:
再次登录,ok
这里有一段注释:Locking an account does not affect being able to connect using a proxy user that assumes the identity of the locked account. It also does not affect the ability to execute stored programs or views that have a DEFINER clause naming the locked account. That is, the ability to use a proxied account or stored programs or views is not affected by locking the account.
4, To make it easier to support secure connections, MySQL servers compiled using OpenSSL
can automatically generate missing SSL and RSA certificate and key files at startup.
5,mysql安装使用(应该是初始化)mysqld –initialize 命令,
关于安装时的一些改变如下:
只有一个root帐号,并且是有密码的
初始化时不会再创建匿名用户,也就是之前的空用户
Test库已经被默认移除
二 默认是strict模式,也就是说,比如你之前在5.6插入一个超过长度的数据,会报warning,现在就要报错了。
三 在线更改索引名称; 在之前的5.6版本是做不到的。
四 对于这个特性,不太了解。
下面比较关心的来了,innodb的增强功能。
1,可以使用alter table 功能更改varchar类型的字段长度。增加方式为:
此处的ALGORITHM=INPLACE,只能增加字段的长度,不能减少,增加的时候不能跨越256这个值,但是两边可以增加。
2,使用DML创建innodb临时表的性能得到了提高,这个到底提高到了哪,什么程度,我也不晓得。。
DDL performance for InnoDB temporary tables is improved through optimization of CREATE
TABLE, DROP TABLE, TRUNCATE TABLE, and ALTER TABLE statements.
3,这个是说临时表不在存放在innnodb的共享表空间的意思吧。具体有什么好处呢?
4,innodb增加了一个空间数据类型DATA_GEOMETRY,然而我也不知道它有什么卵用
5,给临时表加了一个独立的表空间,参数为innodb_temp_data_file_path
6,checksum在功能上的加强:可检查的文件大小,在5.7.2之前只支持到2GB,现在可以大于2GB
7,5.7.2首次引进了一个新的日志,叫做non-redo undo log,它跟临时表一样,会被存放放在lbtmp1里面,此文件在data目录下。
8,新增加变量 ,关于innodb_buffer_pool增加的相关参数如下:
首先增加了两个,innodb_buffer_pool_dump_pct,innodb_buffer_pool_chunk_size 其次还有默认值不一样了,mysql5.7开始默认在数据库服务启动,停止时,预热与dump数据。innodb_buffer_pool_dump_pct 是设置dump的百分比,这部分数据是最热的数据innodb_buffer_pool_chunk_size
其他的变量增加:innodb_page_cleaners,定义了dirty pages clean线程的个数
9,这这里好像是说,增加了在线的一下ddl操作,重点是避免了copytable的操作,提供表的可用性,
10,double write技术在以下支持原子写的磁盘上失效。 Fusion-io Non-Volatile Memory (NVM) from 5.7.4
11,这个特性是说,在5.7.4之前,只能copy非分区表到别的server,而之后,分区表也是支持的。具体以前为什么不可以,现在为什么可以了还不清楚。
12,下面这个功能是不是很酷,哈哈。
13,触发器数量不在限制,以前,作为一个after insert的触发器,对于一张表来说,只能创建一个,现在不在限制。
14,Ctrl+C不会退出mysql客户端
15,复制库名重定向,我是这样叫的
16,Change master to 的改变,
主要说了一些情况,mysql可以在不做stop slave 的操作情况下,就change master to。
更多情况请参考mysql5.7refman
17,测试套件的默认engine变成了innodb
18,Mysql开始支持多主复制。