MySQL-8.0.18 引入了破坏性变更
MySQL-8.0.18 引入了破坏性变更
变更日志里面有这样一项
When the server is run with --initialize, there is no reason to load non-early plugins. The server now logs a warning and ignores
any --plugin-load or --plugin-load-add options given with --initialize. (Bug #)
也就是说当我们在做初始化的时,像半同步插件这样的非必要插件是不会被加载的,一旦我们在配置文件中加入了相应的配置项,整个初始化就会失败。
场景再现
配置文件(关键部分)
[mysqld]
## replication
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_slave_enabled = 1
rpl_semi_sync_master_timeout = 1000
rpl_semi_sync_master_wait_point = AFTER_SYNC
rpl_semi_sync_master_wait_no_slave = ON
rpl_semi_sync_master_wait_for_slave_count = 1
master_info_repository = table
sync_master_info = 10000
skip_slave_start = OFF
slave_load_tmpdir = /tmp/
plugin_load_add = semisync_master.so
plugin_load_add = semisync_slave.so
初始化命令
/usr/local/mysql-8.0.-linux-glibc2.-x86_64/bin/mysqld --defaults-file=/etc/my-.cnf --initialize --user=mysql3307
错误日志
--17T09::53.905909+: [System] [MY-] [Server] /usr/local/mysql-8.0.-linux-glibc2.-x86_64/bin/mysqld (mysqld 8.0.) initializing of server in progress as process --17T09::56.474963+: [Warning] [MY-] [Server] Ignoring --plugin-load[_add] list as the server is running with --initialize(-insecure).
--17T09::57.620921+: [ERROR] [MY-] [Server] unknown variable 'rpl_semi_sync_master_enabled=1'.
--17T09::57.621099+: [ERROR] [MY-] [Server] The designated data directory /database/mysql/data// is unusable. You can remove all files that the server added to it.
--17T09::57.621375+: [ERROR] [MY-] [Server] Aborting
--17T09::58.676973+: [System] [MY-] [Server] /usr/local/mysql-8.0.-linux-glibc2.-x86_64/bin/mysqld: Shutdown complete (mysqld 8.0.) MySQL Community Server - GPL.
--17T09::59.113521+: [System] [MY-] [Server] /usr/local/mysql-8.0.-linux-glibc2.-x86_64/bin/mysqld (mysqld 8.0.) starting as process
mysqld: Table 'mysql.plugin' doesn't exist
--17T09::59.941092+: [ERROR] [MY-] [Server] Could not open the mysql.plugin table. Please perform the MySQL upgrade procedure.
--17T09::00.013579+: [Warning] [MY-] [Repl] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
解决方案
方案一:由变更日志中提到的内容可以知道,我们只要在初始化时把非必要插件的内容从配置文件中去掉,初始化完成之后再加回来就行了。然而就要求 dba 特别能吃苦,特别能受累。
方案二:使用 dbm-agent 这个自动化工具,它已经对 MySQL-8.0.18 做了兼容,而且整个安装、配置、调优 过程一行命令解决
# 一行命令完成安装、配置、调优
dbma-cli-single-instance --pkg=mysql-8.0.-linux-glibc2.-x86_64.tar.xz --port= --max-mem= install
验证一下
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 8.0. |
+-----------+
row in set (0.00 sec) mysql> show plugins;
+---------------------------------+----------+--------------------+--------------------+---------+
| Name | Status | Type | Library | License |
+---------------------------------+----------+--------------------+--------------------+---------+
|
| rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL |
| rpl_semi_sync_slave | ACTIVE | REPLICATION | semisync_slave.so | GPL |
| clone | ACTIVE | CLONE | mysql_clone.so | GPL |
+---------------------------------+----------+--------------------+--------------------+---------+
rows in set (0.00 sec)
dbm-agent
dbm-agent 是一个开源的自动化工具,可以在 github 上看到到 https://github.com/Neeky/dbm-agent
文章转载自:https://www.sqlpy.com/blogs/books/1/chapters/13/articles/109
---
MySQL-8.0.18 引入了破坏性变更的更多相关文章
- win10 安装mysql 8.0.18 解决Navicat初次连接报错
win10 安装mysql 8.0.18 解决Navicat初次连接报错 win10 安装mysql 8.0.18-winx64 一,先去官网下载mysql 安装包 https://dev.mysql ...
- mysql 8.0.18 hash join测试(内外网首文)
CREATE TABLE COLUMNS_hj as select * from information_schema.`COLUMNS`; INSERT INTO COLUMNS_hj SELECT ...
- mysql 8.0.18 mgr 搭建及其切换
mysql 8.0.18 mgr 搭建及其切换 一.系统安装包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel readline ...
- mysql 8.0.18 手工安装记录
mysql 8.0.18 手工安装记录 为了日常方便,特记录如下. 一.安装系统依赖包 #.系统依赖包安装 yum -y install make gcc-c++ cmake bison-devel ...
- MySQL 8.0.18安装教程(windows 64位)
目录 1-先去官网下载点击的MySQL的下载 2-配置初始化的my.ini文件的文件3-初始化MySQL4-安装MySQL服务 + 启动MySQL 服务5-连接MySQL + 修改密码 * 第一项 ...
- MySQL 8.0.18 在 Windows Server 2019 上的安装(ZIP)公开
AskScuti MySQL : Windows Server 2019 安装 MySQL 8.0 温馨提示:为了展现我最“魅力”的一面,请用谷歌浏览器撩我. 一切就绪,点我开撩
- MySQL 8.0.18 在 Windows Server 2019 上的安装(MSI)公开
AskScuti MySQL : Windows Server 2019 安装 MySQL 8.0 温馨提示:为了展现我最“魅力”的一面,请用谷歌浏览器撩我.那个 IE 啊,我很无奈. 一切就绪,点我 ...
- MySQL 8.0.18 InnoDB Cluster 主从(MGR)完整安装配置
提示: MySQL InnoDB Cluster底层依赖Group Replication模式,至少3台机器 1. 准备3台 CentOS Linux 7 (Core), 修改各主机名:db-hos ...
- mysql 8.0.18 小白安装教程
1. 下载 官网下载:https://dev.mysql.com/downloads/mysql/ 嫌官网网速慢可以加q群,在群文件里下载: 1.下载第一个download 2.解压在自己建的目录(各 ...
随机推荐
- python的@propert装饰器
首先,@propert的作用是把类中的方法『变成』了属性,方便通过实例访问.propert可以有两种用法:可以把一个方法变成只读属性:可以对一些属性进行过滤. 想象这样一个场景,在实例化一个类之后,需 ...
- 集合系列 Queue(九):PriorityQueue
PriorityQueue 是一个优先级队列,其底层原理采用二叉堆实现.我们先来看看它的类声明: public class PriorityQueue<E> extends Abstrac ...
- go面向对象之多态即接口(interface)
Go 语言接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. 实例 /* 定义接口 */ type interface ...
- Java入门系列之集合ArrayList源码分析(七)
前言 上一节我们通过排队类实现了类似ArrayList基本功能,当然还有很多欠缺考虑,只是为了我们学习集合而准备来着,本节我们来看看ArrayList源码中对于常用操作方法是如何进行的,请往下看. A ...
- Spring Boot AOP解析
Spring Boot AOP 面向切面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方面. AOP(Aspec ...
- RabbitMQ的管控台的使用说明
1.RabbitMQ的管控台确实是一个好东西,但是如果是新手,比如刚接触RabbitMQ的时候,看到RabbitMQ的管控台也是一脸懵逼的说,慢慢接触多了,才了解一些使用. 1).RabbitMQ的管 ...
- go-爬图片
go语言爬取图片 注:动态加载出来的爬取不到,或怕取出来图片出错,代码中的网页是可以正常爬取的 package main import ( "fmt" "io" ...
- ant 打包脚本
现在很多人都用ant脚本来进行打包,下面就介绍一下这个打包工具常见的用法.以及脚本如何编写 <!-- 定义任务,清空任务:清空原有的classes目录,重新创建 --> <targe ...
- 77777 77777(2) WriteUp 绕waf技巧学习
两个题的代码都是一样的 只是waf不一样 贴出代码 <?php function update_point($p,$point){ global $link; $q = sprintf(&quo ...
- python监控cpu 硬盘 内存
import psutil import time import yagmail def sendmail(subject,contents): yag = yagmail.SMTP(user='15 ...