人生呀,如梦,MYSQL 8.0.15-5_sql

人生呀,如梦,我觉得只要不投降,就是成功。(周星驰的电影都是多年后成为经典的,这也许就是一种成功)。MYSQL 其实作为数据库产品,对比其他数据库产品(不管收费不收费的),他的缺点都是显而易见的,不能进行复杂的SQL运算,被人诟病的SQL 执行引擎,到现在只能支持的索引类型(HASH 也对INNODB 不支持哟)。但走到现在,一致被人指指点点,多像那个“如梦”。可最近调查的DEVELOPER 最喜欢的 DATABASE , it's NO.1 ,各种公司的开源,闭源产品大部分也是围着他转,解决方案也是多如牛毛。谁敢说他是不成功的数据库产品??


话归正题,前些日志测试了MYSQL 8.013,感觉不是太好,尤其安装的时候各种不顺。最近因为要开始授课, 想着也的装一个做演示,本着测试就要最新的,装了8.015,安装的过程让人感觉是舒服的,不在像8.013 那样涩。(这里指的是PERCONA 的版本,在CENTOS7.4)


这次安装完,发现一些问题,这里SHARE 一下。

1  哪里开始不同(与5.7 相比,一下均与5.7相比)


SQL_MODE 变化,这应该是最应该被提及的一件事

如果你在MYSQL5.7时设置的SQL mode 很可能在MYSQL 8.015中报错,8.0 默认的 SQL MODE 已经变化为,如果你的设置与此不同或不兼容,很可能会在安装的期间报错

人生呀,如梦,MYSQL 8.0.15-5_mysql_02

错误信息

人生呀,如梦,MYSQL 8.0.15-5_数据库_03

ONLY_FULL_GROUP_BY, 在MYSQL 5.7 并不是一个默认值,而在MYSQL8.0 在你不设置的情况下,默认ONLY_FULL_GROUP_BY 是打开的状态。其实这也是在暗示,MSYQL 8 在 GROUP BY 中将更加严谨,并且代码的更改一定是有的,有兴趣可以测测 MYSQL 5.7 和 8.0 在GROUP BY 上是否有性能的差异。


2  去掉的一些参数

innodb_file_format,提到这个参数,在MYSQL 8.0 已经被废弃了,如果你在MY.CNF中体现,那安装就会失败

人生呀,如梦,MYSQL 8.0.15-5_mysql_04

在MYSQL 5.7 的  document 上明确的显示这个参数的消失,主要是由于老的文件方式走到了生命的尽头,而且从新的参数集你也可以窥见一斑。

人生呀,如梦,MYSQL 8.0.15-5_mysql_05

行的格式已经默认是 dynamic , 这也就意味着,建立索引支持的 BYTES 等等的数值,不在是 768。


MYSQL 8.0 中的  binlog_expire_logs_seconds

expire-logs-days 在MYSQL 中是设置BINLOG 的过期时间,以天来计算,而现在这个设置即将被剔除,换来的是以秒计算的过期时间,其实这样设置是更灵活的,默认值是 ​​2592000,换算天数 30天。但如果你查询binlog_expire_logs_seconds 的值是 0的话,只能说明一个问题就是你的expire-logs-days 已经设置了,所以为了稳妥,还是改成MYSQL8.0 建议值,换算成秒。​

MYSQL8.0 UNDO 表空间的变化

人生呀,如梦,MYSQL 8.0.15-5_数据库_06

在MYSQL 5.7 undo表空间在 MY.CNF 中设置后,就不能在进行改变了,除非停机,后在改变,当然也还是比较麻烦。从 MYSQL 8.0后UNDO 表空间可以动态的建立和删除,相关原有的配置也在MYSQL 8.0中作废了。

取而代之的是 INNODB_UNDO_DIRECTORY 和动态的创建语句,当然如果你不设置,则会产生默认的两个文件 innodb_undo_001  innodb_undo_002 ,同时UNDO 文件的截断清除 也有两种方法,自动或手动。具体设置这里就详细提及了。


MYSQL 8 的用户及密码验证策略的改变

MYSQL 8 之前一直使用的是插件,而不是组件,MYSQL 8后已经要开始使用 ​​validate_password​​  component, 相应的。但MYSQL 想的还是比较周到,如果你安装配置中,还是使用了插件,他还是可以继续工作,但在ERROR LOG 中会告知,请更换相关的组件,这也就是说,关于用户以及密码的部分,已经不已插件的模式支持,而变更为组件。(组件和插件之间的含义不同,不在解释,基础性问题)。


以上就是本次安装MYSQL 8 是遇到的错误和注意,(当然MYSQL 57 和 8 之间的不同很多,一篇文章讲不完) 在 MYSQL 8 的 MGR 的监控项目和可调整项目更多,并且MGR 也更加稳定。


MYSQL 的人生,“如梦”