Table 'barfoo_datacenter_config.parttemplates' doesn't exist------Mysql


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


问题解释:

1、发生该错误的情形。我是将别人的数据库目录下的data文件夹直接复制过来的,里面有三个数据库mysql、test和barfoo_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_logfile0、ib_logfile1和ibdata1,另外还有一个就是数据库名下面的众多.frm文件。先对这几个文件作简要介绍。

ib_logfile0和ib_logfile1是关于数据库的一些日志文件;     
.frm文件是数据库中很多的表的结构描述文件;      
ibdata1文件时数据库的真实数据存放文件。

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

mysql --console

此时,你会发现很多的错误提示,该命令就是对环境进行测试的。如果你不理会这些错误,进入数据库,用show tables;命令发现数据库表存在,但是执行select等操作就会出现1146:Table doesn’t exist这个错误了。

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

解决方法:

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

Table 'barfoo_datacenter_config.parttemplates' doesn't exist------Mysql

时间: 2024-10-14 20:36:08

Table 'barfoo_datacenter_config.parttemplates' doesn't exist------Mysql的相关文章

mysql Table 'performance_schema.session_variables' doesn't exist

CMD  进入MYSQL的安装目录..Bin 下 执行 mysql_upgrade -u root -p --force 输入密码..然后等待一会儿..会跑一些东西..然后重启服务 mysql Table 'performance_schema.session_variables' doesn't exist

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException Table 'xinghe.base_class' doesn't exist

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException Table 'xinghe.base_class' doesn't exist HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: type Exception report message Request

将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'puyang.ServiceType' doesn't exist

将一模一样的项目从win迁移到到linux上报错: 一开始还是以为是linux不能识别hql语句,查找资料发现是因为Liunx服务器上mysql是区分大小写的,而本地是不区分的如:代码是这样写的 @Entity@Table(name = "users") 数据库建的表名称是Users,那么就会出现以上异常. 将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcepti

解决mysql插入数据报错[Err] 1146 - Table 'performance_schema.session_status' doesn't exist

解决办法:1.打开cmd 执行命令cd/ 进入C盘根目录2.dir 查看C盘根目录下文件夹  找到 Program Files文件夹3.cd Program Files 进入该文件夹下 再输入dir 查看该文件夹下所有文件夹4.cd MySQL 进入该文件夹  再输入dir 查看该文件夹下所有文件夹5.cd MySQLServer 5.7 进入该文件夹  再输入dir 查看该文件夹下所有文件夹6.cd bin 进入该文件夹  7.输入mysql_upgrade -u root -p --forc

Table 'performance_schema.session_status' doesn't exist和Native table 'performance_schema'.'session_status' has the wrong structure解决办法

如果从MySQL5.6升到5.7,可能会出现Table 'performance_schema.session_status' doesn't exist和Native table 'performance_schema'.'session_status' has the wrong structure这两个错误,解决办法: 执行以下指令: mysql_upgrade -u root -p --force 然后重启MySQL: systemctl restart mysqld 这样就正常了!!!

Table ‘performance_schema.session_variables’ doesn’t exist

运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist 解决的方法是: 第一步:在管理员命令中输入: mysql_upgrade -u root -p --force 第二步:重新启动mysql的服务: net stop mysql net start mysql 再次运行mysql,就解决了. 注意,两步缺一不可.

spring+quartz报错:Table 'BANKSTEELERP_OLD.QRTZ_TRIGGERS' doesn't exist

spring3.2.8 + quartz2.2.1配置到application.xml中 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'startQuertz' defined in class path resource [application.xml]: Invocation of init method failed; nested exception is

更新Navicat Premium 后打开数据库出现1146 - Table 'performance_schema.session_variables' doesn't exist

更新Navicat Premium 后打开数据库出现1146 - Table 'performance_schema.session_variables' doesn't exist 解决方法:打开终端进入mysql bin目录下执行 mysql_upgrade -u root -p --force 本人用的MAMP集成环境输入命令如下 /Applications/MAMP/Library/bin/mysql_upgrade -u root -p --force 就解决了 作者:Start_85

phpmyadmin 出现Table 'root.pma_table_uiprefs' doesn't exist

原文链接:http://zhidao.baidu.com/link?url=ugBKDds94yxWhh_IZ6rZWZYSd2nO555EZ1WMClXRrqL0aKLc-HPDrZVSKZyDaDj01ZlItijFJwelOFHodJ8tLJ1KcEWrdZuE9r21X-8lPVa 修改phpmyadmin的配置文件config.inc.php $cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';改成: $cfg['Ser