当前位置:   article > 正文

MySQL 9.0 风云再起:全面解析最新创新版发布!

mysql9.0

1fb3430e49ab98979fa0bd2f2c854c5d.png

MySQL 9.0.0 变更(2024-07-01,创新版本)

删除参数

身份验证 在 MySQL 8.0 中弃用的插件已被删除,并且服务器不再接受来自不具备相应能力的旧客户端程序的认证请求。为了向后兼容,MySQL 客户端仍然保留了一种方式,即将客户端端内建的认证插件转换为动态可加载的插件。

在 MySQL 8.0 中,默认的认证插件已更改为 caching_sha2_password(详见 Caching SHA-2 Pluggable Authentication)。这些改动导致以下服务器选项和变量被移除:

  • 服务器选项 --mysql-native-password

  • 服务器选项 --mysql-native-password-proxy-users

  • 服务器系统变量 default_authentication_plugin

废弃列

Performance Schema variables_info 表中的 min_value 和 max_value 列也已被废弃,并可能在未来的 MySQL 版本中移除。推荐使用 variables_metadata 表中的 min_value 和 max_value 列,这两者提供了相同的信息。

新增表

Performance Schema中添加了两张新表,具体如下:

  1. variables_metadata 表:提供关于系统变量的一般信息。这些信息包括每个 MySQL 服务器识别的系统变量的名称、作用域、类型、范围(适用时)、以及描述。

  2. global_variable_attributes 表:提供关于由服务器分配给全局系统变量的属性-值对的信息。

这些新表的引入旨在取代已废弃的 variables_info 表中的 min_value 和 max_value 列,为用户提供更准确和全面的系统变量信息。这些变更使得 MySQL 的性能模式能够更好地支持系统变量的管理和监控,有助于开发人员和管理员更好地理解和优化数据库的性能。

SQL 语法说明

EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

这个语法允许将分析查询语句的执行计划以 JSON 格式保存到名为 @variable 的用户变量中。随后可以将这个变量作为任何 MySQL JSON 函数的参数使用(参见 JSON Functions)

  1. 示例:mysql> EXPLAIN FORMAT=JSON INTO @root select * from el_company_logo where company_id=1;
  2. ysql> SELECT @root;{
  3. "query_block": {
  4. "select_id": 1,
  5. "cost_info": {
  6. "query_cost": "0.35"
  7. },
  8. "table": {
  9. "table_name": "el_company_logo",
  10. "access_type": "ALL",
  11. "possible_keys": [
  12. "idx_company_id"
  13. ],
  14. "rows_examined_per_scan": 1,
  15. "rows_produced_per_join": 1,
  16. "filtered": "100.00",
  17. "cost_info": {
  18. "read_cost": "0.25",
  19. "eval_cost": "0.10",
  20. "prefix_cost": "0.35",
  21. "data_read_per_join": "1K"
  22. },
  23. "used_columns": [
  24. "id",
  25. "logo_image",
  26. "company_id",
  27. "create_user_id",
  28. "create_time"
  29. ],
  30. "attached_condition": "(`db1`.`el_company_logo`.`company_id` = 1)"
  31. }
  32. }
  33. } |

下载地址

MySQL :: Download MySQL Community Server

dcbf38c3815200c310820e475c705748.png

安装依赖

yum -y install lrzsz wget perl-Digest-MD5 numactl ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

解压

  1. [root@test19-server08 ~]# tar xvf mysql-9.0.0-1.el8.x86_64.rpm-bundle.tar
  2. -rw-r--r-- 1 7155 31415 15M Jun 9 22:19 mysql-community-client-9.0.0-1.el8.x86_64.rpm
  3. -rw-r--r-- 1 7155 31415 29M Jun 9 22:19 mysql-community-client-debuginfo-9.0.0-1.el8.x86_64.rpm
  4. -rw-r--r-- 1 7155 31415 4.7M Jun 9 22:20 mysql-community-client-plugins-9.0.0-1.el8.x86_64.rpm
  5. -rw-r--r-- 1 7155 31415 4.7M Jun 9 22:20 mysql-community-client-plugins-debuginfo-9.0.0-1.el8.x86_64.rpm
  6. -rw-r--r-- 1 7155 31415 696K Jun 9 22:20 mysql-community-common-9.0.0-1.el8.x86_64.rpm
  7. -rw-r--r-- 1 7155 31415 7.1M Jun 9 22:20 mysql-community-debuginfo-9.0.0-1.el8.x86_64.rpm
  8. -rw-r--r-- 1 7155 31415 21M Jun 9 22:20 mysql-community-debugsource-9.0.0-1.el8.x86_64.rpm
  9. -rw-r--r-- 1 7155 31415 8.3M Jun 9 22:20 mysql-community-devel-9.0.0-1.el8.x86_64.rpm
  10. -rw-r--r-- 1 7155 31415 2.3M Jun 9 22:20 mysql-community-icu-data-files-9.0.0-1.el8.x86_64.rpm
  11. -rw-r--r-- 1 7155 31415 1.6M Jun 9 22:20 mysql-community-libs-9.0.0-1.el8.x86_64.rpm
  12. -rw-r--r-- 1 7155 31415 1.5M Jun 9 22:20 mysql-community-libs-compat-9.0.0-1.el8.x86_64.rpm
  13. -rw-r--r-- 1 7155 31415 2.9M Jun 9 22:20 mysql-community-libs-compat-debuginfo-9.0.0-1.el8.x86_64.rpm
  14. -rw-r--r-- 1 7155 31415 2.7M Jun 9 22:21 mysql-community-libs-debuginfo-9.0.0-1.el8.x86_64.rpm
  15. -rw-r--r-- 1 7155 31415 62M Jun 9 22:21 mysql-community-server-9.0.0-1.el8.x86_64.rpm
  16. -rw-r--r-- 1 7155 31415 26M Jun 9 22:21 mysql-community-server-debug-9.0.0-1.el8.x86_64.rpm
  17. -rw-r--r-- 1 7155 31415 161M Jun 9 22:21 mysql-community-server-debug-debuginfo-9.0.0-1.el8.x86_64.rpm
  18. -rw-r--r-- 1 7155 31415 244M Jun 9 22:21 mysql-community-server-debuginfo-9.0.0-1.el8.x86_64.rpm
  19. -rw-r--r-- 1 7155 31415 351M Jun 9 22:22 mysql-community-test-9.0.0-1.el8.x86_64.rpm
  20. -rw-r--r-- 1 7155 31415 29M Jun 9 22:23 mysql-community-test-debuginfo-9.0.0-1.el8.x86_64.rpm

安装

  1. rpm -ivh mysql-community-common-9.0.0-1.el8.x86_64.rpm
  2. rpm -ivh mysql-community-client-plugins-9.0.0-1.el8.x86_64.rpm
  3. rpm -ivh mysql-community-libs-9.0.0-1.el8.x86_64.rpm
  4. rpm -ivh mysql-community-client-9.0.0-1.el8.x86_64.rpm
  5. rpm -ivh mysql-community-icu-data-files-9.0.0-1.el8.x86_64.rpm
  6. rpm -ivh mysql-community-libs-compat-9.0.0-1.el8.x86_64.rpm
  7. rpm -ivh mysql-community-server-9.0.0-1.el8.x86_64.rpm

初始化

mysqld --initialize

目录授权

chown mysql:mysql /var/lib/mysql -R

启动mysql

  1. /bin/systemctl start mysqld.service
  2. /bin/systemctl status mysqld.service

显示mysql的随机密码

输入:grep 'temporary password' /var/log/mysqld.log

运行 MySQL 安装安全脚本  (也可使用第9部手动操作,二者选其一)

为了加强 MySQL 的安全性,运行 mysql_secure_installation 脚本:

  1. shell > mysql_secure_installation
  2. 根据提示完成以下操作:
  3. 输入临时 root 密码
  4. 设置新的 root 密码
  5. 移除匿名用户
  6. 禁止 root 远程登录
  7. 移除测试数据库
  8. 重新加载权限表

修改密码

  1. 修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'tMKmf3fdggim!vfdv1';
  2. 查看密码策略:SHOW VARIABLES LIKE 'validate_password%';
  3. 修改密码长度:set global validate_password.length=1;(长度)
  4. 修改密码等级:set global validate_password.policy=0;(等级)

   公众号内直接回复加群也可以,扫码加群也可以,觉得帖子写的不错,点点关注,点点赞,多多转载。

加入数据库技术交流群:

3cdda433575fc4cdd3b6c2d2fa8b02cb.jpeg

进群福利:

1、知识共享与学习机会

2、问题求助与解决支持

3、技术沉淀和分享平台

4、及时了解行业动态

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/962752
推荐阅读
相关标签
  

闽ICP备14008679号