前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL 8 安装中遇到的一些问题及汇总

MYSQL 8 安装中遇到的一些问题及汇总

作者头像
AustinDatabases
发布2019-06-21 16:41:29
1.3K0
发布2019-06-21 16:41:29
举报
文章被收录于专栏:AustinDatabases
MYSQL的安装中遇到一些问题,这里的汇总一下,看看越来越强大的MYSQL 8 在安装中和MYSQL 5.7 有什么不大一样的地方。

1 在SQL_MODE的地方添加

ONLY_FULL_GROUP_BY, 这个一直是被其他数据库DBER诟病的地方,在之前MYSQL 的GROUP BY 经常因为不严谨,而被吐槽,添加这个参数后,MYSQL的GROUP BY 和其他数据库的 GROUP BY 的方式会一致,不严谨的写法将被禁止。(不严谨的写法就是,写GROUP BY 语句的 select 列和 group by 中的列不一致)。

2 以下配置就不要在MY.CNF中存在,因为MYSQL 8 的格式统一为barracuda

innodb_file_format = Barracuda

innodb_file_format_max = Barracuda

3 expire_logs_day 将在未来的版本中被消灭,取代他的是binlog_expire_logs_seconds=432000 来代替,这里可以尝试把天换算成秒

4 Undo table space 的设置不在设置中,MYSQL 会自动默认进行设置2 个undo 空间,如果还有问题,需要自己去创建undo table space

5 原来的密码插件,被MYSQL8.0 变为密码组件,首先在原来的my.cnf中药去掉如下设置

#disconnect_on_expired_password=disable

#default_password_lifetime=0

#validate_password_policy=LOW #STRONG

#validate-password=FORCE_PLUS_PERMANENT

以及在开始启动时加载的 validate_password.so

官方文档,中解释道 通过 yum 或 rpm方式安装的MYSQL 都包括了 component_validata_password 的组件。

如果是通过其他方式,(这里是通过percona 二进制方式安装的),在进入到MYSQL后直接键入

代码语言:javascript
复制
INSTALL COMPONENT 'file://component_validate_password';

validate_password.check_user_name 是对密码中是否包含用户名进行比对,默认是打开的,如果密码中包含用户的名字则密码生成会错误。

validate_password.mixed_case_count 是对密码中的用户名进行判断是否有大小写的设置,0 是不需要混合,1 是默认需要进行大小写混合

validate_password.policy= low 这是对密码的复杂度进行的要求,low 是要求密码的长度, MEDIUM 是要求大小写,数字和密码成都, STRONG 是除了上述的要求外,还要想字典文件中的内容。

最后MYSQL在MYSQL8 中加入了 connection-control plugin ,这个插件的主要作用在于对于原来没有对服务器进行连接管理的内容补充,意在对服务器不断的尝试性访问失败后,如何处理这些不断进行的连接。

可以在配置文件加入以下内容

connection-control=FORCE_PLUS_PERMANENT

connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT

connection_control_failed_connections_threshold=4

connection_control_min_connection_delay=1500

并在此之前安装好插件

plugin-load-add=connection_control.so

并在MYSQL 中执行命令

代码语言:javascript
复制
INSTALL PLUGIN CONNECTION_CONTROL
  SONAME 'connection_control.so';
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS
  SONAME 'connection_control.so';
在设置好后,通过connection_control_failed_connections_threshold来继续判断客户端尝试多少次连接失败的情况下开始进行超过连接后的连接超时时间connection_control_min_connection_delay=1500 单位是毫秒
这有效的弥补了之前MYSQL 在这方面的缺陷,更加保证了连接的安全性和如何弥补攻击性的连接的处理方式
代码语言:javascript
复制

除此以外还有一些默认值的改变

1 max_allow_packet 从原来的 4MB 变为 64MB

2 table_open_cache 从原来的 2000 变为 4000

3 log_error_verbosity 从原来的notes 变为 warnings

4 innodb_flush_neighbors 从原来的 1 变为 0

5 innodb_max_dirty-pages_pct 从原来的 75% 到 90%

6 transaction-write-set-extraction 从原来的off变为 XXHASH64

7 Slave_rows_search_algorithms 从原来的 index_scan, table scan 变为 index_scan hash_scan

8 event_scheduler 从原来的 0 变为 1

说完这些,我想大家应该能对MYSQL 5.7 和 8.0 在设计上的变化有一定想法了

从5.7 到 8 的速度不会太慢(已经有一年多的时间了,percona 也有半年的时间了),还得加快速度学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档