插件作者的标准出来了!Manyou诚邀开发者加盟!
“互联网平台开发者”特刊 有奖征集开发者
立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT2.5正式版发布
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的网店托管-卖否
PHP就业培训直通车 | LAMP培训大连
Discuz!收费服务内容及价格
《站长》杂志读者调查表
Discuz!/ECShop 专用官方虚拟主机
Insenz最新活动精美礼品大派送!
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
《站长》第七期:2008SNS进行时
返回列表 发新话题

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

论坛是由dvbbs 7.1sp1 sql版转到discuz的

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

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


使用论坛后台功能,参考以下贴子
http://www.discuz.net/viewthread ... 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直接导出导入
参考了以下几个贴子
http://www.discuz.net/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 编辑 ]
一个好人!
你呀,你根本不让人家弄,老是怕别人窃取你数据,晕死,自己再试试吧
PHP+MySQL相关,如插件定制、数据转换等请联系QQ:282808085(请注明来意),注意:不一定收费
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导入为好!
碰到问题请先搜索,您的问题其他人很可能碰到过并已经解决了。
没事的时候多去帮助文档区逛逛啊,那里有好东东哦 ^_^
紫琼推荐
原帖由 WitQQ 于 2006-11-8 08:09 发表
你呀,你根本不让人家弄,老是怕别人窃取你数据,晕死,自己再试试吧
你是哪位啊?你说过帮我弄?
什么问题症状我都说过了,能想到的方法我和服务商一起都试过了,还有什么方法你说出来啊
一个好人!
原帖由 紫琼 于 2006-11-8 10:19 发表

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

还有后台备份的数据最好后台导入或使用restore.php导入,用phpmyadmin导出的数据就用phpmyadmin导入为好!
我用restore.php试过,不行
一个好人!
帮 楼主 顶一下
原帖由 peizhao1 于 2006-11-9 11:53 发表
帮 楼主 顶一下

感激涕零啊
一个好人!

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

前面已经给你回复了,是你服务器的问题
把备份数据下到本地转。
碰到问题请先搜索,您的问题其他人很可能碰到过并已经解决了。
没事的时候多去帮助文档区逛逛啊,那里有好东东哦 ^_^
紫琼推荐
应该属于乱码问题,尝试看看你文件的编码
襄樊学院校友俱乐部:http://www.xfuclub.com/
导入备份的时候如果你装了SS的话很可能出错,你可以先在后台关掉SS再备份数据
最好的方法
当然还是直接在mysql中复制移动数据文件了
返回列表