普通用户二进制安装mariadb10.1.16 mysql库表损坏修改

1)mariadb日志:

10:36:48 140397816809216 [Note] InnoDB: Dumping buffer pool(s) not yet started
2016-09-01 10:36:48 140510705071872 [Warning] InnoDB: Cannot open table mysql/gtid_slave_pos from the internal data dictionary of InnoDB though the .frm file for the t
able exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
2016-09-01 10:36:48 140510705071872 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1932: Table ‘
mysql.gtid_slave_pos
‘ doesn‘t exist 
in engine
2016-09-01 10:36:48 140510705289088 [Note] Server socket created on IP: ‘0.0.0.0‘.
2016-09-01 10:36:48 140510704572160 [Warning] InnoDB: Cannot open table mysql/gtid_slave_pos from the internal data dictionary of InnoDB though the .frm file for the t
able exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
2016-09-01 10:36:48 140510704572160 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1932: Table ‘mysql.gtid_slave_pos‘ doesn‘t exist 
in engine

2)我本机mariadb损坏了三张表 :

innodb_table_stats
innodb_index_stats
gtid_slave_pos

3)网上部分方法如下:

3.1找到mariadb安装目录share下mysql_system_tables.sql这调sql进入mysql库下执行source 依然问题有问题

3.2 打开mysql_system_tables.sql找到create 这三张表语句,手动执行,问题还是存在

4)我的方法:

4.1登陆数据库----use mysql;

   drop table innodb_table_stats;
  drop table innodb_index.stats;
  drop table gtid_slave_pos;

\q 退出mariadb

4.3进入mariadb安装目录data下mysql删除 三张表以为ibd结尾的表

innodb_table_stats.ibd
innodb_index_stats.ibd
gtid_slave_pos.ibd

4.4在次登陆mariadb进入mysql库执行source

source /home/innodb_table_stats.sql
source /home/innodb_index_stats.sql
source /home/gtid_slave_pos.sql

重新启动mariadb查看日志没有错误了(注意在操作前如果有数据要提前备份,为了以防出错还原)

这三个sql表结构是我从mysql_system_tables.sql整理出来的。我已经打包上传了。


第一张: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‘;

时间: 2024-10-14 01:11:23

普通用户二进制安装mariadb10.1.16 mysql库表损坏修改的相关文章

Mysql 库表操作初识

Mysql 库表操作初识 终端登录mysql 这里只演示win下, cmd 终端. 至于怎么在win下, linux, mac安装, 感觉这是一个入门级的百度搜索问题, 安装都搞不定, 确实有点尴尬, 好尴尬呀. -- win + R 输入cmd 进入控制台 C:\Users\chenjie> mysql -u root -p -- 回车 Enter password: ******** -- 回车 -- 成功进入了mysql客户端, 如果登录失败, 要么就是密码不对, 或者是服务没有开启. W

CentOS-7.4 二进制安装mariadb10.2数据库

在官方网站下在二进制安装包 http://mariadb.org #"包名:带有linux字样的就是编译完安装包" mariadb-10.2.12-linux-x86_64.tar.gz 确认系统中没有mariadb相关的软件包 rpm -qa "mariadb*" 将源码包解压至/usr/local这个文件夹中 "注意:必须是这个文件夹" tar vxf mariadb-10.2.12-linux-x86_64.tar.gz -C /usr/l

MySQL数据库表损坏后的修复方法

步骤:1.sql语句:check table tabTest; 如果出现的结果说Status是OK,则不用修复,如果有Error2.Linux执行: myisamchk -r -q /var/lib/mysql/db/test.MYI 3.sql语句:repair table tabTest; 4.sql语句:check table tabTest; Status是OK就修复好了 非Linux上:直接 参考:有两种方法,一种方法使用mysql的check table和repair table 的

安装python官方的mysql库“mysql-connector-python”

$ echo https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.3.tar.gz >> requirements.txt$ sudo -H pip install -r ./requirements.txt    本机必须得加-H... container里直接 pip install -r ./requirements.txt  就行.

随笔编号-16 MySQL查看表及索引大小方法

目标:阿里云OS数据库DMS,单个主库最大存储空间为2T.最近公司业务扩展很快,一天数据量达到7.9G左右.要求备份清理历史数据,备份到其他磁盘. 准备: 如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大

mysql 库表操作

1. 库操作 1.1. 创建数据库 语法规则:create database 库名; CREATE DATABASE dt55; 在创建库时,希望指定编码语法:create database 库名 character set 编码名 CREATE DATABASE dt55 CHARACTER SET utf8; 1.2. 删除数据库 DROP DATABASE dt55; 1.3. 查看数据库 (1)查看某一个数据库的详细信息 语法:show CREATE DATABASE 库名: SHOW

mysql 库表的操作

MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 # 基本上跟python或者js的命名规则一样 2.数据库相关操作 也是一些基本操作,和我们之前说的差不多. 复制代码 1 查看数据库

第二阶段 MySQL函数库 表的修改与查询

一.表结构的修改(DDL) 1.添加表结构的字段 a.ALTER TABLE 表名 ADD 字段名 数据类型 [字段属性|约束条件] [FIRST|AFTER 字段名]: b. 添加多个字段 ALTER TABLE 表名 ADD 字段名 数据类型 [字段属性|约束条件] [FIRST|AFTER 字段名], ADD 字段名 数据类型 [字段属性|约束条件] [FIRST|AFTER 字段名]...: 2 删除字段 ALTER TABLE 表名 DROP 字段名, DROP 字段名...; 3.修

mysql 库表整体相关查询

select table_schema,table_name from information_schema.columns where column_name = '字段名'; 查询某张表有几条记录 select count(*) FROM gasmis_shangxian.his_fuel_record; 查询某几张表一个有多少条记录 SELECT SUM(a) from(SELECT COUNT(*) a FROM gasmis_shangxian.his_fuel_record UNIO