mysql5.7 优点_MySQL5.7 的新特点

MySQL 5.7着重提升了安全性,包括用户表结构升级、密码策略强化、账号安全管理和密码过期机制。此外,还支持原生JSON、空间数据类型、计算列以及在线调整InnoDB缓冲池大小等功能。弃用了skip-innodb等选项,引入了sys数据库以方便性能分析。
摘要由CSDN通过智能技术生成

1、安全性

MySQL 5.7 的目标是成为发布以来最安全的 MySQL 服务器,其在 SSL/TLS 和全面安全开发方面有一些重要的改变。

mysql.user表结构升级

MySQL5.7用户表mysql.user的plugin字段不允许为空,默认值是mysql_native_password,而不是mysql_old_password,不再支持旧密码格式。

从旧版本升级,直接将原有的SQL导入到MySQL5.7,需要进行user表结构的升级:

shell> /usr/local/mysql/bin/mysql_upgrade -uroot -p

重启MySQL

mysql.user表中已经没有了password字段,取而代之的是“authentication_string”

# 修改密码(或者忘记密码的处理方式):

# 运行:

shell> mysqld_safe --skip-grant-tables &

# 如果此时不想被远程连接:

shell> mysqld_safe --skip-grant-tables --skip-networking &

# 更改密码:

mysql> update mysql.user set authentication_string=password('123AAAbbb2323#') where user='root' and Host = 'localhost';

mysql> flush privileges;

或者:

mysql> alter user 'root'@'localhost' identified by '123AAAbbb2323#';

mysql> flush privileges;

账号安全

用户长度最大为32字节,之前最大长度为16字节,并且CREATE USER 和 DROP USER 命令里实现了 IF [NOT] EXISTS 条件判断。

创建用户分2步:先通过create user 创建用户,再通过grant来授权。

# 先创建用户

mysql> CREATE USER 'dba'@'localhost' IDENTIFIED BY '123456';

# 或者

mysql> CREATE USER 'dba'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '123456';

# 或者

mysql> create user ‘test1’@’%’ identified with mysql_native_password as ‘23AE809DDACAF96AF0FD78ED04B6A265E05AA257’

# 再授权

mysql> grant select,insert,update,delete on *.* to dba@localhost;

直接使用grant命令创建用户将会报如下警告:

Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement.

密码过期策略

增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式。

为用户设置密码过期时间,一定时间以后,强制用户修改密码。可以直接在create user的时候设置,也可以alter user设置:

PASSWORD EXPIRE DEFAULT   # 默认,过期时间受全局变量 default_password_lifetime 控制

PASSWORD EXPIRE NEVER #永不过期

PASSWORD EXPIRE INTERVAL N DAY  #N天后过期

PASSWORD EXPIRE #过期

举例:

# 直接创建用户的时候设置 10天后过期:

mysql> create user dba@localhost identified by '123456' password expire interval 10 day;

# 对已有用户设置 永不过期:

mysql> alter user dba@localhost password expire never;

默认密码过期时间受变量default_password_lifetime控制,为0表示默认永不过期

mysql> set global default_password_lifetime=0;

Query OK, 0 rows affected (0.00 sec)

密码安全策略

为防止用户设置过简单的密码,mysql在5.6开始就已经支持了密码安全策略的插件。

开启密码安全策略,2种方法:

① 在配置文件里修改:

[mysqld]

plugin-load=validate_password.so

validate-password=FORCE_PLUS_PERMANENT

② 在线修改

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Query OK, 0 rows affected (0.01 sec)

开启安全策略的时候,不能为用户设置一个简单的密码:

mysql> grant all on *.* to dba@localhost identified by '123';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密码要求的强度手参数:validate_password_policy 的影响。validate_password_policy的值有:

0 or LOW:仅需需符合密码长度(由参数validate_password_length指定,默认为8)

1 or MEDIUM:满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符,默认。

2 or STRONG:满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中

相关参数:

validate_password_dictionary_file:在STRONG模式下还能设置字典文件,字典中存在的密码不得使用。可以通过该参数来设置字典文件。

validate_password_length:设置密码的最小长度,默认值为8。

validate_password_mixed_case_count:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值