拧巴人 发表于 2015-2-7 16:25

mysql 删除旧表后创建同名表报错,flush tables无效

Mysql通过root用户访问table t_user,提示该表不存在,究其原因是因为:在MySQL Workbench下通过root用户创建Table t_user ,授权不够导致。

索性,通过workbench将root下所建tables删除掉后,给普通用户jizg授权schemas,并在jizg用户下创建相应的tables,创建同名数据表t_user时报错,Tablespace for table '`ecm`.`t_user`' exists.

在cmd下重新查看后,发现ecm schemas下并不存在t_user表,通过flush tables 刷新数据表缓存依旧报错。

经查,发现在Mysql data文件夹下依旧存在t_user表对应的两个数据文件中的t_user.ibd,需将其删除,操作方法如下:
1. 停止 mysql 服务,net stop mysql。
2. 删除t_user.ibd文件。
3. 启动 mysql 服务,net start mysql。
4. 重新创建t_user表,成功。

有的时候,mysql 服务启动报错,也可尝试删除Mysql data文件夹下ib前缀的3个文件后重启mysql 服务。

页: [1]
查看完整版本: mysql 删除旧表后创建同名表报错,flush tables无效