我试图在 mysql 中删除一个数据库,但每次我收到这个错误
ERROR 2013 (HY000): Lost connection to MySQL server during query
Run Code Online (Sandbox Code Playgroud)
甚至以 root 身份登录。
最初,我有一个无法重新创建的损坏表,因此我决定重新创建数据库。我每个表都有 innodb 文件,不确定这是否重要。
我怎样才能删除这个数据库?
Rol*_*DBA 10
恐怕你不能删除数据库。
问题在于损坏的表。它不一定是.ibd文件。它很可能是 ibdata1 中的数据字典条目(请参阅 ibdata1 的图示)。
我写了这个Mar 02, 2012:InnoDB 表 SELECT 返回 ERROR 2006 (HY000): MySQL 服务器已经消失(停电后)
尽管很乏味,但您可以通过以下方法将其他表保存在该损坏的数据库中bad_db:
步骤 01) USE bad_db
步骤 02)SELECT COUNT(1) FROM tablename;为bad_db. 收集所有在您尝试运行计数时不会使 mysqld 崩溃的表名。
步骤 03) 运行mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql
所有没有使 mysqld 崩溃的表。
如果您打算使用不同的数据库名称,则重新加载bad_db_goodtables.sql到该新数据库中。
如果您需要数据库同名,坏消息!!!您将对 ibdata1 进行大修。还有更多步骤:
步骤 04) mysqldump 所有其他数据库到单独的转储文件中
步骤 05)执行 InnoDB 基础设施清理(参见我的Oct 29, 2010StackOverflow 帖子)
步骤 06) 重新加载所有其他 mysqldumps 好的数据库。
试一试 !!!
| 归档时间: |
|
| 查看次数: |
21666 次 |
| 最近记录: |