当mariadb10.x启用gtid复制时提示找不到mysql.gtid_slave_pos怎么办

发布时间:2020-05-13 17:22:20 作者:三月
来源:亿速云 阅读:313

下面一起来了解下当mariadb10.x启用gtid复制时提示找不到mysql.gtid_slave_pos怎么办,相信大家看完肯定会受益匪浅,文字在精不在多,希望当mariadb10.x启用gtid复制时提示找不到mysql.gtid_slave_pos怎么办这篇短内容是你想要的。

解决方案:/usr/share/mysql/mysql_system_tables.sql是创建系统表的脚本

找到innodb_table_stats,innodb_index_stats,gtid_slave_pos表的创建方式

innodb_table_stats表的创建语句:

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `innodb_table_stats`;
CREATE TABLE `innodb_table_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `n_rows` bigint(20) unsigned NOT NULL,
  `clustered_index_size` bigint(20) unsigned NOT NULL,
  `sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
  PRIMARY KEY (`database_name`,`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;

innodb_index_stats表的创建语句:

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `innodb_index_stats`;
CREATE TABLE `innodb_index_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `index_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `stat_value` bigint(20) unsigned NOT NULL,
  `sample_size` bigint(20) unsigned DEFAULT NULL,
  `stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;

gtid_slave_pos表的创建语句:

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `gtid_slave_pos`;
CREATE TABLE `gtid_slave_pos` (
  `domain_id` int(10) unsigned NOT NULL,
  `sub_id` bigint(20) unsigned NOT NULL,
  `server_id` int(10) unsigned NOT NULL,
  `seq_no` bigint(20) unsigned NOT NULL,
  PRIMARY KEY (`domain_id`,`sub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Replication slave GTID position';

执行以下命令,即可解决表找不到的问题:

mysql -uroot -p123456 -e "drop mysql.table innodb_table_stats;"
mysql -uroot -p123456 -e "drop mysql.table innodb_index_stats;"
mysql -uroot -p123456 -e "drop mysql.table gtid_slave_pos;"
mv /data/mysql/mysql/innodb_index_stats.ibd /tmp
mv /data/mysql/mysql/innodb_table_stats.ibd /tmp
mv /data/mysql/mysql/gtid_slave_pos.ibd /tmp
mysql -uroot -p123456 -e "use mysql;source /root/innodb_index_stats.sql;"
mysql -uroot -p123456 -e "use mysql;source /root/innodb_table_stats.sql;"
mysql -uroot -p123456 -e "use mysql;source /root/gtid_slave_pos.sql;"
/etc/init.d/mysql restart

看完当mariadb10.x启用gtid复制时提示找不到mysql.gtid_slave_pos怎么办这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

推荐阅读:
  1. mysl 基于 GTID主从复制
  2. 说GTID - GTID-based复制中的限制

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

mariadb mysql

上一篇:java的框架有哪些

下一篇:css实现自定义选择框的方法

相关阅读

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

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