设为首页 收藏本站
查看: 361|回复: 0

[经验分享] Table 'barfoo_datacenter_config.parttemplates' doesn't exist------Mysql

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-28 08:47:24 | 显示全部楼层 |阅读模式


错误ERROR Table 'barfoo_datacenter_config.parttemplates' doesn't exist;


QQ截图20150728084743.png
问题解释:
1、发生该错误的情形。我是将别人的数据库目录下的data文件夹直接复制过来的,里面有三个数据库mysqltestbarfoo_datacenter_config,主要想要barfoo_datacenter_config数据库(是拷贝,不是备份),而且barfoo_datacenter_config是使用innodb作为存储引擎的,这两方面综合起来就导致了1146这个错误(Table 'barfoo_datacenter_config.parttemplates' doesn't exist)。
      
2、因为要使用innodb做存储引擎,所以要对my.ini文件进行相应的修改。在my.ini文件中,你可以找到关于innodb的相关设置,但是被注释掉了。因为mysql5.1版本后,innodb不在作为默认的设置了。首先将skip-innodb注释掉,然后需要设置正确innodb的相关参数。   
   
3、采用innodb存储引擎,关系到data文件夹下面的一些文件:ib_logfile0ib_logfile1ibdata1,另外还有一个就是数据库名下面的众多.frm文件。先对这几个文件作简要介绍。     
1
2
3
ib_logfile0和ib_logfile1是关于数据库的一些日志文件;     
.frm文件是数据库中很多的表的结构描述文件;      
ibdata1文件时数据库的真实数据存放文件。



到mysql目录下的bin文件夹下运行命令:     
1
mysql --console





此时,你会发现很多的错误提示,该命令就是对环境进行测试的。如果你不理会这些错误,进入数据库,用show tables;命令发现数据库表存在,但是执行select等操作就会出现1146Table doesn’t exist这个错误了。     
其实这是由ibdata1文件的错误引起的,这个应该在日志文件ib_logfile0ib_logfile1中找到,于是把ibdata1文件删除掉,再次执行该命令,发现没有提示错误了,但进入数据库以后,操作仍就导致1146这个错误。后来仔细一下,也是,你说你把ibdata1文件删除,相当于把数据库的真实数据删除了,这时你就会问为什么数据库表还存在呢,都能看到,因为数据库表结构的描述是在.frm的众多文件中的,所以能通过show tables;查看到。 那么问题就来了:ibdata1文件是从别人那里拷贝过来的,为什么在那边能用,到我这边就不能用了呢?这就是最核心的问题所在,因为mysql是采用缓冲方式来将数据写入到ibdata1文件中的,这正是fflush()函数存在的理由。因此当别人的mysql在运行时,你对data文件夹进行拷贝,即对ibdata1进行拷贝肯定会导致该文件中的数据出错的。   


解决方法:
首先在自己的mysql下,建立一个你即将要拷贝的数据库(数据库名要一样,里面不需要建表),然后将所有的.frm文件拷贝到你建的数据库文件夹下,再次进入mysql,用show  tables查看表是否已经建立起来了。然后停止你自己的mysql服务,发现在data文件下面已经有ib_logfile0ib_logfile1ibdata1三个文件了,之后停掉别人的mysql服务,只将ibdata1文件拷贝过来进行覆盖,最后启动你自己的mysql服务就可以对数据库进行正常操作了


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-91366-1-1.html 上篇帖子: Mysql高可用(drbd+heartbeat+mysql) 下篇帖子: Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表