Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑问] 我是不是命该当绝啊,所有导入数据的方法我都试过了!

[复制链接]
~云飞满天~ 发表于 2006-11-7 23:42:24 | 显示全部楼层 |阅读模式
论坛是由dvbbs 7.1sp1 sql版转到discuz的

数据库是latin1编码,
在config。inc中强制latin1才能显示正常
但是因为一些插件,以及和其他程序整合,必须改成gbk
想把数据库字符集由latin1转换到gbk
但我使用了无数方法,搜了discuz全论坛,以及百度上的所有办法,都没有能成功,相信我的搜索能力,我的工作是做竞争情报分析的

下面说说我的悲惨的经历:


使用论坛后台功能,参考以下贴子
https://discuz.dismall.com/viewth ... p;extra=&page=1

论坛后台备份成功,但是无法恢复,普通备份和十六进制备份都试过了,把内存限制调大,备份卷改到1m,还是不行,疯了
都出现如下错误

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8388608 bytes) in /usr/users/cufebbs.com/discuz/admin/database.inc.php on line 423





于是乎想要phpmyadmin导入,结果

Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/cpanel/base/3rdparty/phpMyAdmin/libraries/string.lib.php on line 112

Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/cpanel/base/3rdparty/phpMyAdmin/libraries/string.lib.php on line 112

Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/cpanel/base/3rdparty/phpMyAdmin/libraries/string.lib.php on line 112
错误
这可能是您找到了 SQL 分析程式的一些程式错误,请细心查看您的语法,检查一下引号是正确及没有遗漏,其他可能出错的原因可能来自您上载档案时在引号外的地方使用了二进制码。您可以尝试在 MySQL 命令列介面执行该语法。如 MySQL 伺服器发出错误信息,这可能帮助您去找出问题所在。如您仍然未能解决问题,或在分析程式出现错误,但在命令列模式能正常执行,请将该句出现错误的 SQL 语法抽出,并将以下的"剪取"部份一同提交到臭虫区:
----开始 剪取----
eNp1kM1Kw0AQx+/7FAOKtZjE3U1tm/ViKaEWYluTtiJVJNJqK7GmSattH6NvEOzBkwp6ET14MYs+
gnjz6MGD6E1w4weCIMx/ZnZnmN8wumkWTQZZAlkKhl5gQAgWIkCJhqyyqAUIZasWg8l8nYHfcVzb
8xue4rQ2FbfpSvtAFTUJFOO5WZwWJlJGKRMjnMauBnrfhUm0NLCWDQYJhSgkIftdu123vbrs7G2j
imVC0ZIgk9MLZQmqumCutNqQ1yGpYFRayjCBSCoJ2XUoKi2WohapaEXTVEVgjFa710dGppBjMGx2
D+Red0tOo09gvmDpZlmEchHcg41u02vYdR+qGaOiW9MxFdOYFFNV4bCQsB273SA0+lDTwgWt8fXR
bbAzPV44eeLH4SN/GN1d9uNQu+iMTnNT9q47P6Fq8z6/50f8nD+vQy06hYxT6xAM+Gr4xt3wnVf4
cvh6dsXNYDiuXN2ELzOHa2tfxAhMfiJJEKxqWor8ffzulfzu/V/xD8+AjWg=
----结束 剪取----
----开始 原始资料----

ERROR: C1 C2 LEN: 110 111 219
STR: ?

CVS: $Id: sqlparser.lib.php,v 2.36 2005/08/08 20:22:11 lem9 Exp $
MySQL: 4.1.14-standard-log
USR OS、AGENT、VER: Win IE 6.0
PMA: 2.6.4-pl2
PHP VER,OS: 4.3.11 Linux
LANG: zhtw-utf-8
SQL: INSERT INTO pw_threads VALUES('302','33','0','','jane123','38','?i??ɡj(?@?뇮ƣǜ?ʻx) [?q??G'sǚǨǴǯ] [2005-07] ?yǚƶǰƽǖǒƵ??ǒ?z?U?ņ󫣜\','','0','1','0','1141039971','1141039971','jane123','6','0','0','0','0','0','0','0','0')
----结束 原始资料----
SQL 语法:

INSERT INTO pw_threads VALUES('302','33','0','','jane123','38','?i??ɡj(?@?뇮ƣǜ?ʻx) [?q??G'sǚǨǴǯ] [2005-07] ?yǚƶǰƽǖǒƵ??ǒ?z?U?ņ󫣜\','','0','1','0','1141039971','1141039971','jane123','6','0','0','0','0','0','0','0','0')
MySQL 传回:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0','1','0','1141039971','1141039971','jane123','6','0','0','0','0','0','0','0','' at line 1


只能考虑用mysql直接导出导入
参考了以下几个贴子
https://discuz.dismall.com/thread-408114-1-1.html

http://kb.discuz.net/index.php?t ... 7.E7.AC.A6.E9.9B.86

把数据导为mysql4.0的格式,具体的命令如下: mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > test.sql

首先使用下面语句新建一个GBK字符集的数据库(test)
CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

然后把刚才导出的数据导入到当前的数据库中就ok了。
mysql -uroot -p --default-character-set=gbk -f test<test.sql



但是依然导入不进去

出现错误
ERROR 1062 (23000) at line 440260: Duplicate entry '354419' for key 1
ERROR 1062 (23000) at line 440261: Duplicate entry '354420' for key 1
ERROR 1062 (23000) at line 440262: Duplicate entry '354421' for key 1
ERROR 1062 (23000) at line 440263: Duplicate entry '354422' for key 1
ERROR 1062 (23000) at line 440264: Duplicate entry '354423' for key 1
ERROR 1062 (23000) at line 440265: Duplicate entr


此外我还试过ebak,restore。php的备份恢复工具--失败!

我要死了!

服务器配置:
服务器软件: Apache/2.0.52 (Red Hat)  操作系统  : Linux
PHP版本   : 4.4.1 MYSQL版本 : 4.1.12
全局变量  : 打开  上传文件  : 可以  
登陆者IP  : 125.96.24.22 当前时间  : 2006-11-07 00:52:17
程序版本  : Ebak Version 1.3 使用域名  : www.cufebbs.com  

[ 本帖最后由 ~云飞满天~ 于 2006-11-7 23:43 编辑 ]
回复

使用道具 举报

WitQQ 发表于 2006-11-8 08:09:19 | 显示全部楼层
你呀,你根本不让人家弄,老是怕别人窃取你数据,晕死,自己再试试吧
回复

使用道具 举报

紫琼 发表于 2006-11-8 10:19:33 | 显示全部楼层
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8388608 bytes) in /usr/users/cufebbs.com/discuz/admin/database.inc.php on line 423

出现这个错误不是备份恢复的问题,是数据库执行时占用内存过大,服务器配置问题。

还有后台备份的数据最好后台导入或使用restore.php导入,用phpmyadmin导出的数据就用phpmyadmin导入为好!
回复

使用道具 举报

 楼主| ~云飞满天~ 发表于 2006-11-8 12:50:06 | 显示全部楼层
原帖由 WitQQ 于 2006-11-8 08:09 发表
你呀,你根本不让人家弄,老是怕别人窃取你数据,晕死,自己再试试吧


你是哪位啊?你说过帮我弄?
什么问题症状我都说过了,能想到的方法我和服务商一起都试过了,还有什么方法你说出来啊
回复

使用道具 举报

 楼主| ~云飞满天~ 发表于 2006-11-8 12:50:34 | 显示全部楼层
原帖由 紫琼 于 2006-11-8 10:19 发表

出现这个错误不是备份恢复的问题,是数据库执行时占用内存过大,服务器配置问题。

还有后台备份的数据最好后台导入或使用restore.php导入,用phpmyadmin导出的数据就用phpmyadmin导入为好!



我用restore.php试过,不行
回复

使用道具 举报

peizhao1 发表于 2006-11-9 11:53:36 | 显示全部楼层
帮 楼主 顶一下
回复

使用道具 举报

 楼主| ~云飞满天~ 发表于 2006-11-9 13:54:30 | 显示全部楼层
原帖由 peizhao1 于 2006-11-9 11:53 发表
帮 楼主 顶一下




感激涕零啊
回复

使用道具 举报

紫琼 发表于 2006-11-9 14:12:25 | 显示全部楼层

回复 #7 ~云飞满天~ 的帖子

前面已经给你回复了,是你服务器的问题
把备份数据下到本地转。
回复

使用道具 举报

lad 发表于 2006-11-28 17:45:41 | 显示全部楼层
应该属于乱码问题,尝试看看你文件的编码
回复

使用道具 举报

流逝的古典 发表于 2008-7-2 09:27:44 | 显示全部楼层
导入备份的时候如果你装了SS的话很可能出错,你可以先在后台关掉SS再备份数据
最好的方法
当然还是直接在mysql中复制移动数据文件了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-15 18:59 , Processed in 0.085558 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表