MYSQL 8 的参数UP DOWN了什么

发布时间:2022-01-04 10:07:37 作者:柒染
来源:亿速云 阅读:149

MYSQL 8 的参数UP DOWN了什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

mysql8 是早早晚晚都的上的版本,早上会让开发欣喜,因为很多不支持的功能都开始支持,而尤其是MGR 方面的完善和物理复制的插件等等也是D们期待的。晚上也是有道理的,查询的速度估计会让继续使用MYSQL.5.7的感到欣慰。

mysql 8的安装上已经和mysql,5.7 在参数的配置上不一样了,所以还是先搞清楚哪些参数的问题,配置一个较优的mysql 8 比较好,目前mysql 最新的版本是8.019,目前稍微稳定的版本是8.015, 功能有创造性的是8.017.

下面的版本都是基于percona mysql 8.017 对比5.7的配置来说

1  SQL MODE 主要影响影响MySQL支持的SQL语法和它执行的数据验证检查,在MYSQL初始化的时候SQL MODE 是一个重要的设置,而MYSQL 5.7 和8.0 在一些配置上是有区别的。

下面是匹配mysql 8.011 以上的版本的SQL MODE

ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION

下面是mysql 5.78以上的配置

ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION

其中我们可以看到这里两个版本的区别,仅仅体现在 no_auto_create_user 这个选项上,这个选项的含义是除非指定了身份验证信息,否则将阻止GRANT语句自动创建新用户帐户。该语句必须指定使用identify BY或使用identify WITH的身份验证插件的非空密码。由于MYSQL 8 不能在通过grant 来建立账户,必须通过create user来进行,所以这个配置就被MYSQL 8 拿掉了。

如果不改变还使用MYSQL5.7的配置,会造成启动服务器报错

MYSQL 8 的参数UP DOWN了什么

2 innodb_file_format 这个配置也在mysql 8 被去掉了,如果还有这个配置则MYSQL 8 无法启动并报错。主要是mysql 8不在支持Antelope 格式,只支持Barracuda格式,所以这个选项的存在就么有必要了。

3 innodb_undo_logs 在5.7 的配置产生多少UNDO LOGS 的配置,在8.0 已经使用 innodb_rollback_segments 来替代了。这里有一个公式,可以计算出当前你的设置能支持多少并发的事务,超过这个数字就会出现报错导致事务无法运行。

(innodb_page_size / 16 / 2) * innodb_rollback_segments * 

number of undo tablespaces

query_cache_type 这也是在MYSQL 8.0 去掉的功能,在MYSQL 5.X 也很少被使用的一个鸡肋的功能。

5  MYSQL 的关于账户安全方面的插件,全部失效,需要安装符合8.0 的安全插件产品。所以相关的配置均不存在,如果配置则报错。

6 expire_logs_days ,这项配置也已经被取消

7  innodb_undo_tablespaces  这项配置也被取消

8  master-info-file, relay_log_info_file 等也都被取消,相关的信息被强制保存在数据表中。

在清理了这些配置后,也添加了其他的参与予以替换

1 Caching_sha2_password_rsa_public_key 新的用户安全插件使用的密码插件配置

2 Innodb_undo_tablespaces_active  多少存活的undo tablespace 数量

3 binlog_expire_logs_seconds 来设置BINLOG 的过期清理的时间,单位秒

4 innodb_deadlock_detect  检测死锁

5innodb_dedicated_server  自动调整 INNODB BUFFER内存 log file size, 数据刷新方法。

6 innodb_temp_tablespaces_dir 开始调整临时表的存放的空间

注:在 innodb_dedicated_server 设置为ON 的情况下,如果不清理原先与innodb_dedicated_server 有关的信息,则MYSQL 会根据你初始的设置项来进行设置,innodb_dedicated_server 相当于无效。

而其中UNDO LOG 的变化比较大

1 可以动态创建UNDO LOG 

2 不在只能创建128个 SEGMENT

3 超过一定数量的UNDO LOG SIZE 会被 innodb_undo_truncate 检测通过innodb_max_undo_log_size 来控制,超过这个设置就开始自动在线收缩。

另外针对用户密码验证的问题,之前写过一篇MYSQL 的针对用户名密码验证的文字,这里就不重复了。

INSTALL COMPONENT 'file://component_validate_password';

最后在顺一遍MYSQL 8 的一些限制

1 一个表最多有 1017 列

2 一个表最多有 64个二级索引

3 一行最大的索引的承受字节是 3072  或者  767 bytes 

4 uft8mb4 的表索引最大承受191个字符,超过无法建立索引,包含前缀索引

5 如果缩减innodb_page_size 到8KB 到 4KB ,以上的部分内容的限制会减半或减75%

6  建立二级索引,单个索引最大的运行列为16列

关于MYSQL 8 的参数UP DOWN了什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. docker-compose一键部署MySQL+Redis+
  2. 使用 docker-compose 运行 MySQL的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

innodb

上一篇:Flex内存优化原则和内存泄露的示例分析

下一篇:JS的script标签属性有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》