关于数据库备份的恢复

i33333 2006-03-20 03:32:22
RedHat Linux 9 MySQL数据库


恢复由mysqldump备份的数据库时
提示 table '' already exists 和 duplicate entry '' for key

然后 我把恢复到的那个数据库目录 rm -rf 彻底删除
并且 find / -name '*db_name*' 也显示没有了

但 mysql -u root -p db_name < dbname.sql 恢复时 还是提示 table '' already exists 和 duplicate entry '' for key

怎么办?

所用的备份文件是别人做的
当时应该没用--add-drop-table参数
而我现在又不能对作备份 论坛访问量太大
...全文
187 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hy2003fly 2006-03-25
  • 打赏
  • 举报
回复
start-date和stop-date可以由你自己来指定的。
i33333 2006-03-24
  • 打赏
  • 举报
回复
又有新问题:

http://community.csdn.net/Expert/topic/4637/4637156.xml?temp=.1336023
i33333 2006-03-22
  • 打赏
  • 举报
回复
大体写了一下:

mysqlbinlog --start-date="time_of_err_occur_1" --stop-date="time_of_err_occur_2" /path_to_log_file/bin.1234 > output_file.sql

通过上面来找到错误位置,

mysqlbinlog --stop-position="1234' --start-position="1239" /path_to_log_file/bin.1234 | mysql -u user_name -p db_name

通过上面把错误行跳过,


现在想到一个问题是,start-date和stop-date怎么确定?
i33333 2006-03-22
  • 打赏
  • 举报
回复
现在想,也许能用
mysqlbinlog --stop-position
mysqlbinlog --start-postion

还在查资料中
hy2003fly 2006-03-21
  • 打赏
  • 举报
回复
那你有没有用show tables;来确定数据库里到底是不是已经存在了一个你想建的表?
如果你重命名my.cnf的话,你的mysql服务会启动不了的,因为mysql启动的时候是自动读取my.cnf文件里的内容。
你想知道进度的话就有图形管理工具,mysql-administrator,下载地址为:http://dev.mysql.com/downloads/administrator/1.1.html

要不然这样吧,你新建一个空的数据库,等你全部都恢复了,再把数据库重命名吧。
i33333 2006-03-21
  • 打赏
  • 举报
回复
用mysql -h hostname -u username -p dbname < /dbpath/dbname恢复时
有什么办法能知道进度吗?
i33333 2006-03-21
  • 打赏
  • 举报
回复
to hy2003fly():

use dbname;后,提示 Database changed


我现在想这样尝试:
把my.cnf文件改名,重启mysql服务,让mysql以默认配置启动,然后再把数据导进去看看,导完数据了,再把my.cnf文件改回来,重启mysql
hy2003fly 2006-03-21
  • 打赏
  • 举报
回复
应该没有后遗症。没有错,就是因为你的备份的sql文件里有错误,所以不能全部恢复。
解决的办法就能是在备份文件里找到相应的行,然后改正,再执行。
i33333 2006-03-21
  • 打赏
  • 举报
回复
该怎么处理呢?
在备份文件中找到相应行,然后修改?
i33333 2006-03-21
  • 打赏
  • 举报
回复
MySQL数据库从备份文件恢复完后(只恢复了一大部分,难道是因为下面这个错误?)
有这样的错误提示:
ERROR 1064 at line 3690640: You have an error in your SQL syntax near 'desc text
'
seq int(11) default NULL,
category_id int(11) default NULL,
cou' at line 5
i33333 2006-03-21
  • 打赏
  • 举报
回复
先建一个新的,恢复完后后重命名,对于重命名,可能会有后遗的问题吗?
XqYuan 2006-03-20
  • 打赏
  • 举报
回复
还有可能是导出数据或是导入数据时由于编码问题使某些数据为乱码重复
hy2003fly 2006-03-20
  • 打赏
  • 举报
回复
你进入mysql后,用use dbname;进入表所在数据库后,再show tables;查看有没有相应的表,有的话就用drop table tablename;进行删除.
如果还不行的话,你复制好一份后,编辑里面的sql语句,保存好后,再来恢复看行不行?

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧