mysql新建表时提⽰Tabledb.tabledoesntexist解决⽅法
原因:
以表”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类型的表却不⾏。解决⽅法就是:
mysql创建表数据类型同时拷贝innodb数据库表“*.frm”⽂件和innodb数据“ibdata1”⽂件到合适的位置。启动MySQL的Windows服务
由于MySQL这样数据混杂的形式, 往往很容易让使⽤者在备份时忘记了备份InnoDB, 从⽽导致了上述错误.
解决⽅法1:drop table if exists tablename;删除表信息,然后重建;
解决⽅法2:数据库引擎类型为InnoDB时,拷贝数据⽂件的同时还需要拷贝ibdata1,将⽬录下的ib_logfile*⽂件全部删除掉,重新启动mysql服务

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。