我进口使用大型mysql数据库,如何恢复?
的mysql -uroot -ppassword DBNAME过程可能是由于后几天超时期间数据库已经消失......
是有办法恢复它?或者我运气不好,需要删除现有的数据库并重新导入?
我进口使用大型mysql数据库,如何恢复?
的mysql -uroot -ppassword DBNAME过程可能是由于后几天超时期间数据库已经消失......
是有办法恢复它?或者我运气不好,需要删除现有的数据库并重新导入?
它可能有助于在命令行上使用“--ignore”选项来“恢复”导入。
语义是它应该忽略任何已经导入的数据,只导入尚未存在的数据。
下面是MYSQL文档忽略选项: http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#option_mysqlimport_ignore
“数据库已经走了”通常表示服务器崩溃,请检查你的mysql日志/var/log/mysqld.log或者如果不存在跑;
SELECT * FROM GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'LOG_ERROR';
我从来没有客户端断开连接,即使是长达一周的网络运行。它看起来像你本地连接,所以断开连接是不太可能的。
如果您想恢复,您可以执行以下操作;
希望这有助于
不,它与数据库的连接超时,它会在某处保持活动或超时设置。 – Owl 2016-08-03 10:00:12
我使用INSERT IGNORE INTO
通过流编辑(sed
)我的转储文件是这样的:
nice gunzip < dumpfile.sql.gz | sed -e "s|^INSERT INTO |INSERT IGNORE INTO |g" | nice mysql -uroot -p"password" DBName
如果您知道查询中的最后一个插入点,请将您的mysqldump
文件拆分为该点之前的位置,并将插入替换为插入忽略。在尝试每个事务时,您可能不希望插入忽略整个数据集。
此外,mysql服务器已经消失,也可以指示违反max_allowed_packet
大小。
你能打破转储吗? – Karlson 2012-02-21 16:51:32
我也很想知道这个答案。我知道使用phpMyAdmin时可以恢复导入,但我不确定使用MySQL命令行工具时恢复是否会起作用。 – Richard 2012-05-10 16:18:18