免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3802 | 回复: 11
打印 上一主题 下一主题

备份的数据库不能恢复怎么办? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-21 19:11 |只看该作者 |倒序浏览
我有一个论坛的数据库备份,大概200多M,论坛是PHP+MySQL的,
我这边WinXP下装了MySQL5.0,用那个administrator 1.019,对数据库进行恢复,
可是导不进去,我设置导入的字符集为UTF-8了,可是导入前的分析,进行到一个固定的字节时就停止了。
我打开看了一下,是insert 一个长串的文本,里面好象有不少乱码方格子啥的。

不知道如何解决呢,谢谢各位!

论坛徽章:
0
2 [报告]
发表于 2006-03-22 09:09 |只看该作者
报错信息是什么?
导入的时候最好指定和导出时一样的字符集

论坛徽章:
0
3 [报告]
发表于 2006-03-26 19:05 |只看该作者

回复 1楼 neil_young 的帖子

出现了这么一个错误,
Unknown command '\0'.
关于字符集,请问我现在只有那个导出数据库的备份,我该如何查看他的什么字符集的呢?

论坛徽章:
0
4 [报告]
发表于 2006-03-26 19:08 |只看该作者
我研究搜索了很多贴子,呵呵,发现言是那个mediumtext这个类型的字段 好象都要出问题。
然后查看了MYSQL的手册,
\0   一个ASCII 0 (NUL)字符
这么说应该是对的,难道还是字符集的原因?

再问一下,如果这个数据库里有一些头像图片什么的,导出来整个数据库也变成文本形式的备份,也是直接恢复就可以了?

论坛徽章:
0
5 [报告]
发表于 2006-03-26 19:18 |只看该作者
我现在是在XP的cmd下面用命令来试的
mysql -u root -p dabase1 <e:/databaseback.sql
ERROR at line 16900: Unknown command '\0'.

然后我打开文件,16900行是这样的
INSERT INTO customavatar VALUES('11899', '

论坛徽章:
0
6 [报告]
发表于 2006-03-27 09:27 |只看该作者
看看mysqldump的参数之一:
  --hex-blob          Dump binary strings (BINARY, VARBINARY, BLOB) in
                      hexadecimal format.

论坛徽章:
0
7 [报告]
发表于 2006-03-27 10:40 |只看该作者
谢谢,就也就是导出的时候要指定一下这些特殊类型吧,
那我现有的这个备份导不回去了吗?
还有这里头的字段是mediumtext类型,好象还不是BLOB类型的,
从出错的情况看来,好象MYSQL把单引号里头的这些内容没有当成整个字符串,而是试图去解析里面的东西啊,怎么回事啊。

[ 本帖最后由 neil_young 于 2006-3-27 10:46 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-03-27 12:06 |只看该作者
没弄明白

论坛徽章:
0
9 [报告]
发表于 2006-03-27 13:09 |只看该作者
原帖由 neil_young 于 2006-3-27 10:40 发表
谢谢,就也就是导出的时候要指定一下这些特殊类型吧,
那我现有的这个备份导不回去了吗?
还有这里头的字段是mediumtext类型,好象还不是BLOB类型的,
从出错的情况看来,好象MYSQL把单引号里头的这些内容没有当 ...


先试着指定字符集导入。字符集可以查看备份文件里的建表语句,或者开始几行里的 /*! xxx */ 之间的内容。

论坛徽章:
0
10 [报告]
发表于 2006-03-27 17:23 |只看该作者

中文不能插入

非常感谢 yejr 的热情帮助。 我这边现在的新状况是这样的
我本人是英文的XP系统,MYSQL默认是utf-8字符集

C:\>mysql  --default-character-set=utf8 wuya<d:\forumbackup.sql

ERROR 1406 (22001) at line 12136: Data too long for column 'extrainfo' at row 1

然后我尝试把字符集设成gbk,gb2312,仍然是报这个错Data too long for column 'extrainfo' at row 1,但有趣的是,出错的行数有一些变化。


我直接把数据放在mysql的query工具里执行这个语句
INSERT INTO adminlog VALUES('12458', '571', '1125168150', 'banning.php', 'dobanuser', 'username = 愛麗絲', '61.180.14.206');

仍然是报这个错Data too long for column 'extrainfo' at row 1,我把当中的中文删除掉,就能正常的插入了。

目前我可以用-f参数强行忽略错误,但仍想问一下,这个情况如何处理。中文不能插入.
再提一个问题吧,能不能把这个出错的信息,让他自动写到一个文本文件里?

[ 本帖最后由 neil_young 于 2006-3-27 17:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP