mysql新建表时提示Table 'db.table' doesn't exist解决方法
2016-06-28 09:38
567 查看
原因:
以表”Table”为例:
如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中.
如类型是InnoDB, 数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.
MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。
而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。
MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:
同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务
由于MySQL这样数据混杂的形式, 往往很容易让使用者在备份时忘记了备份InnoDB, 从而导致了上述错误.
解决方法1:drop table if exists tablename;删除表信息,然后重建;
解决方法2:数据库引擎类型为InnoDB时,拷贝数据文件的同时还需要拷贝ibdata1,将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务
以表”Table”为例:
如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中.
如类型是InnoDB, 数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.
MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。
而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。
MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:
同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务
由于MySQL这样数据混杂的形式, 往往很容易让使用者在备份时忘记了备份InnoDB, 从而导致了上述错误.
解决方法1:drop table if exists tablename;删除表信息,然后重建;
解决方法2:数据库引擎类型为InnoDB时,拷贝数据文件的同时还需要拷贝ibdata1,将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务
相关文章推荐
- mysql 行列转换方式
- [转]MySQL主从复制入门
- mysql常用的增删改操作
- session入mysql
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- mysql xtrabackup 备份恢复实现分享
- MYSQL + MHA +keepalive + VIP安装配置(一)--MYSQL安装配置
- MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置
- mysql数据库sql优化原则
- MySQL添加用户、删除用户与授权
- mybatis不能插入,查询中文的问题以及可能的解决办法,以及Mysql数据库编码的设置
- Mysql常用命令
- mysql函数大全
- MySQL按照汉字的拼音排序
- MySql数据导入导出cvs文件命令
- mysql-5.7.9-winx64 绿色版安装以及恢复数据方法
- Mysql命令整理
- MySql 5.7.13 覆盖安装问题
- Mysql数据库AB复制简单实现
- mysql 慢查询日志,灾难日志恢复,错误日志