【MySQL 8】MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了

随着MySQL 5.7即将停止支持,MySQL 8成为新的选择。本文介绍了MySQL 8的新特性,包括账户与安全的改进,如分开创建用户和授权,以及默认认证插件的改变;索引增强,如隐藏索引、降序索引和函数索引的引入,提供更灵活的查询优化;原子DDL操作,确保数据定义语言的原子性,避免部分操作失败;以及通用表达式(CTE)的使用,简化复杂查询。这些新特性不仅提升了性能,也增强了数据库的安全性和易用性。
摘要由CSDN通过智能技术生成

MySQL 8新特性

选择MySQL 8的背景:MySQL 5.6已经停止版本更新了,对于 MySQL 5.7 版本,其将于 2023年 10月31日 停止支持。后续官方将不再进行后续的代码维护。

另外,MySQL 8.0 全内存访问可以轻易跑到 200W QPS,I/O 极端高负载场景跑到 16W QPS,如下图:

上面三个图来自于MySQL官网:www.mysql.com/why-mysql/b…

除了高性能之外,MySQL 8还新增了很多功能,我找了几个比较有特点的新特性,在这里总结一下。

本文使用的MySQL版本为 8.0.29

账户与安全

用户的创建和授权

在MySQL之前的版本,创建用户和给创建的用户授权可以一条语句执行完成:

grant all privileges on *.* to 'zhangsan'@'%' identified by 'Fawai@kuangtu6';

在MySQL 8中,创建用户和授权需要分开执行,否则会报错,执行不成功:

MySQL 8 中,需要分2不完成创建用户和授权的操作:

-- 创建用户
create user 'zhangsan'@'%' identified by 'Fawai@kuangtu6';
-- 授权
grant all privileges on *.* to 'zhangsan'@'%';

再执行创建用户时,出现了如下错误:

这是因为我的 MySQL 8 安装完成后,进入命令行用的还是临时密码,并未修改root的初始密码,需要修改密码才允许操作。

修改密码操作:

-- 修改root密码
alter user user() identified by 'Root@001';

再创建用户即可:

mysql> create user 'zhangsan'@'%' identified by 'Fawai@kuangtu6';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on *.* to 'zhangsan'@'%';
Query OK, 0 rows affected (0.00 sec)

认证插件

在MySQL中,可以用 show variables 命令查看一些设置的MySQL变量,其中密码认证插件的变量名称是 default_authentication_plugin

MySQL 5.7版本

mysql> show variables like '%default_authentication%';
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| default_authentication_plugin | mysql_native_password |
+-------------------------------+-----------------------+
1 row in set (0.02 sec)

MySQL 8版本

mysql> show variables like '%default_authentication%';
+-------------------------------+-----------------------+
| 
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值