文档章节

"Table 'mysql.plugin' doesn't exist"引发de血案

炁元
 炁元
发布于 2016/04/24 17:33
字数 1135
阅读 305
收藏 1

       回过头想想,一开始查下mysql_install_db这个命令,也不至于承受着巨大的压力折腾两天,不得不说,折腾下来的收获真的不小,好记性不如烂笔头,记录下来共勉。 
   故事的开头是用./mysqld_safe命令起不来MySQL,错误提示:ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock',查看/tmp目录中确实没有mysql.sock,又看了log-err:[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. “Please run mysql_upgrade to create it”,如果一开始注意到这句话用mysql_upgrade 命令会不会就没有后头的事了,查了下这个命令,还是没太明白这个命令在此处用的作用,internet上都是说MySQL升级时使用。[采用MySQL_upgrade升级授权表方式升级] 
  当时使用了./mysql_install_db命令,我不知道师弟用的什么参数,指定的配置文件肯定还是/etc/my.cnf,(没想到mysql_install_db命令的结果是新建了个数据库实例,并且一般会新建一个xxx.cnf文件)。然后也新指定了datadir,basedir为data目录(以前的在var目录),生成了新的授权表,my.cnf。mysqld_safe可以起来了,感觉自己棒棒的,但是当我们登陆phpmyadmin后彻底傻了,以前的数据库都没有了,没有第一时间去查mysql_install_db命令的应用场景,满脑子是闯大祸了,数据被删了,要怎么去恢复数据库,要不要请示项目leader,自己先补救再说。。。 
  恢复数据库之旅开始,我们竟然找到了以前/var目录下的所有数据,但是没有想到直接更改my.cnf配置到这个目录就可以,而是坚定的认为mysql的数据库都是默认在data目录的,不能更改,var下的只是副本或者啥的,还是太年轻了T T。我们的做法是用var下的数据去data目录下恢复,使用.frm文件恢复了表结构,按internet上说用ibdata1去恢复数据,但是就是不成功,都没想到用mysql-bin.00000x文件去恢复,还是因为太年轻T T。中间还有一个重大的插曲,ssh不能连接到阿里云服务器了,没办法,只好将这件事告诉了项目leader,好的是他让我别着急,我能不着急吗,这数据要是真没了责任都是我的T T。之后leader给阿里云打电话,工作人员说云上有近三天的快照,leader说他晚上去恢复到某一天快照,让我们不要担心。确实是松了口气,刚好也到下班时间,晚上吃了顿好的,以缓解我白天的压力。 
  然而第二天一大早leader打电话说,快照里头没有还是怎么的,总之就是通过快照不行,还是得自己搞。ssh链接不了是因为Linux的var目录被谁删了,扶额,哪个缺心眼干的,没事喜欢乱删。又开始折腾着恢复数据,internet上的方法看的多了,大都是复制之类的,我就想能不能直接指定配置文件中的路径到./mysql/var呢,反正所有文件都是从var目录cp的。说干就干,mysql起来了,但是登陆进去后每个数据库是空的,然而磁盘上每个数据库中是有.frm文件的,查看日志,”Cannot find or open table xxx from the internal data dictionary of InnoDB through the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data files but hava forgotton to delete the corresponding .frm……, the table contains indexes that this version of the engine doesn’t support.”这段英语说个啥信息,先不管,先给mysql用户赋予权限试试,重启,又看到了熟悉的数据熟悉的表!!!结束~ 
  后记: 
  今天(2016/4/25)大早上,甲方工作人员告诉我录入数据提交不成功,我看到控制台报:#1030-Get error -1 from storage engine,原来是前几天捯饬MySQL的时候在my.cnf加了一个参数innodb_force_recovery=4,插入操作被忽略。注释掉或者设置为0就可以执行正常操作了。

© 著作权归作者所有

炁元
粉丝 0
博文 9
码字总数 13524
作品 0
西安
程序员
私信 提问
mysql 登录报错 ERROR 2002

系统中有mysql数据库,今天登录的时候,报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'(2) 我查看过,在/tmp中有mysql.sock,是一个连接......

tomshen
2012/01/09
1K
1
mysql初始化了还是报错,怎么搞?

系统提示: 131217 11:07:09 mysqld_safe Starting mysqld daemon with databases from /data/mysql 131217 11:07:09 [Note] Plugin 'FEDERATED' is disabled. /data/mysql/bin/mysqld: Tabl......

死神骑士
2013/12/17
453
1
疯了,装了一下午的mysql竟然没有装上!!急救

[/var/lib]#mysql -u root ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) [/var/lib]#cat /var/log/mysqld.log 130128 17:32:5......

arron三叔
2013/01/28
996
9
windows MySql 5.7.9,启动不了。缺少data

看到mysql5.7.9发布了,下了windows的zip,解压后真的没有Data目录。手动建data目录,启动报错 2015-10-22T06:17:52.071875Z 0 [Note] Plugin 'FEDERATED' is disabled. mysqld: Table 'mysq......

随风巽
2015/10/22
36.9K
4
CentOS 6.5 下安装配置 mysql

CentOS 6.5 下安装配置 mysql 使用yum安装,具体过程参见最下边的参考文章。 安装之后启动失败: 启动失败,查看出错原因(记录在/var/log/mysqld.log 文件里): mysql报错 [ERROR] Fatal ...

BG2KNT
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql mysql中的视图

视图是由数据库中的一个表或者多个表导出的虚拟表,方便用户操作。其内容是由查询定义。 视图是存储在数据库中的查询的sql语句。 一、创建视图 1. 查看创建视图的权限 select Select_priv,C...

edison_kwok
13分钟前
0
0
以太坊中文文档翻译-账号

本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读。 账号(Account) 账号及地址相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中...

Tiny熊
23分钟前
0
0
Springboot 集成redis

这里只做单机版简单集成,不过为项目中使用 1.在pom文件中引入支持 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redi......

贾峰uk
54分钟前
3
0
Qt编写安防视频监控系统4-删除视频

一、前言 一般会有两种处理方式来删除视频,一种是鼠标右键菜单,删除当前视频或者删除所有视频,一种是直接按住当前视频,移到视频通道界面以外就表示删除当前视频,这也是个比较人性化的设...

飞扬青云
58分钟前
2
0
NCRE考试感想 三级信息安全(下)

时代的变迁 一些学科的兴起,一些学科的没落;一些职业的兴起,一些职业的没落。在2016年,新闻报道中说:国务院取消了百余项职业资格证书。一切都处于变动之中,要找到变化的规律,跟上时代...

志成就
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部