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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

不同MYSQL版本数据导入问题解决办法--更新版

[复制链接]
weic 发表于 2006-2-12 09:00:12 | 显示全部楼层 |阅读模式
很多人用了"童虎"哥哥的《不同MYSQL版本数据导入问题解决办法》,原文地址请参考以下地址:
https://discuz.dismall.com/viewthread.php?tid=142050

童虎童虎--马马虎虎。大家都这样说了。其实童虎哥哥没有错。错的是不仔细哦。我再来讲一次好了。

前面写童虎写的一样,我也不费劲自己编了:

最近不少用户反映换了空间之后导入数据时候出现错误,错误信息如下:(这里要说明一下,一般是指高版本到低版本的。常见的是:4.1降至4.0左右。听说4.1降到3.多没事。不知是不是真的。我对4.0也不是很了解。最近几个月才常常碰PHP和mysql的)

  1. Discuz! info: MySQL Query Error

  2. User: xxx
  3. Time: 2005-7-14 12:31pm
  4. Script: /admincp.php

  5. SQL: CREATE TABLE cdb_access ( uid mediumint(8) unsigned NOT NULL default '0', fid smallint(6) unsigned NOT NULL default '0', allowview tinyint(1) NOT NULL default '0', allowpost tinyint(1) NOT NULL default '0', allowreply tinyint(1) NOT NULL default '0', allowgetattach tinyint(1) NOT NULL default '0', PRIMARY KEY (uid,fid)) ENGINE=InnoDB DEFAULT CHARSET=latin1
  6. Error: 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 'DEFAULT CHARSET=latin1' at line 1
  7. Errno.: 1064
复制代码


可能信息不完全相同,但是基本类似

解决办法如下:
用纯文本处理软件(例如记事本之类)打开你备份的文件,这些文件一般是*.sql(分卷备份的要注意每个卷都看。)
在这些文件里面找到
  1. ENGINE=MYISAM DEFAULT CHARSET=latin1
复制代码

有的是:
ENGINE=InnoDB DEFAULT CHARSET=latin1

不管是那种,要看你的数据库来,一般都可以改为虎哥哥说的
  1. TYPE=MYISAM
复制代码


————————————————————————————————
然后再找到 如果你是分卷,一般在最后一个分卷。
  1. ENGINE=HEAP DEFAULT CHARSET=latin1
复制代码

改为:
  1. TYPE= HEAP
复制代码

和虎哥哥说的一样嘛。不要急。如果你这样做,后台导入时会出显如下错误(一般是最后一步):
User: xx
Time: 2006-2-12 7:37am
Script: /bbs2/admincp.php

SQL: CREATE TABLE cdb_sessions ( sid char(6) character set latin1 collate latin1_bin NOT NULL default '', ip1 tinyint(3) unsigned NOT NULL default '0', ip2 tinyint(3) unsigned NOT NULL default '0', ip3 tinyint(3) unsigned NOT NULL default '0', ip4 tinyint(3) unsigned NOT NULL default '0', uid mediumint(8) unsigned NOT NULL default '0', username char(15) NOT NULL default '', groupid smallint(6) unsigned NOT NULL default '0', styleid smallint(6) unsigned NOT NULL default '0', invisible tinyint(1) NOT NULL default '0', `action` tinyint(1) unsigned NOT NULL default '0', lastactivity int(10) unsigned NOT NULL default '0', fid smallint(6) unsigned NOT NULL default '0', tid mediumint(8) unsigned NOT NULL default '0', UNIQUE KEY sid (sid)) ENGINE=HEAP DEFAULT CHARSET=latin1 MAX_ROWS=5000
Error: 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 'collate latin1_bin NOT NULL default '', ip1 tinyint(3) unsigne
Errno.: 1064

Similar error report has beed dispatched to administrator before.

首页一看。出现:
Discuz! info: MySQL Query Error

Time: 2006-2-12 7:37am
Script: /bbs2/index.php

SQL: SELECT s.sid, s.styleid, s.groupid='6' AS ipbanned, m.uid AS discuz_uid, m.username AS discuz_user, m.password AS discuz_pw, m.adminid, m.groupid, m.email, m.timeoffset,m.tpp, m.ppp, m.credit, m.timeformat, m.dateformat, m.signature, m.invisible, m.lastvisit, m.lastactivity as user_lastactivity, m.lastpost, m.newpm, m.accessmasks, m.regdate FROM cdb_sessions s, cdb_members m WHERE m.uid=s.uid AND s.sid='temNlR' AND CONCAT_WS('.',s.ip1,s.ip2,s.ip3,s.ip4)='127.0.0.1' AND m.uid='5' AND m.password='7804c484c55324a34c1ebcf1926b9696' AND m.secques='0ebb9d64'
Error: Table 'bbs2.cdb_sessions' doesn't exist
数据表缺失,请恢复备份数据

不要急。这就是为什么说虎哥哥马虎的原因:

————————————————————————————————
找到以下代码并删除:(如果你是分卷,一般在最后一个分卷。)
  1. character set latin1 collate latin1_bin
复制代码

保存上传。
什么嘛!!用restore.php恢复的还是出显上面的1146错误。
呵呵~在这里我不得不说一下。如果是这样,请你重装一下DZ,然后用DZ的后台来恢复。至于为什么要这样。我就不说了。问茄子吧。


PS:你别看我上面写得多。就三部。简单得不得了。。。说明多,为那些不懂的人说明。其实你只要比较一下两个版本导出的数据之间的差别就应该明白哪里有问题了。就是凡出现设置charact的地方,那一句都要修改

最后,看我的签名,请为我解答一下。谢谢!

[ 本帖最后由 weic 于 2006-2-12 09:02 编辑 ]

评分

1

查看全部评分

紫云杉 发表于 2006-2-12 09:03:56 | 显示全部楼层
不是很懂
先支持一下
回复

使用道具 举报

全球通 发表于 2006-2-12 09:47:49 | 显示全部楼层
  1. ENGINE=MYISAM DEFAULT CHARSET=latin1
复制代码

我选择的是替换为空格,然后就OK了
回复

使用道具 举报

web-cy44 发表于 2006-2-12 09:54:33 | 显示全部楼层
支持~
回复

使用道具 举报

 楼主| weic 发表于 2006-2-12 09:54:46 | 显示全部楼层
原帖由 全球通 于 2006-2-12 09:47 发表
  1. ENGINE=MYISAM DEFAULT CHARSET=latin1
复制代码

我选择的是替换为空格,然后就OK了

如果你这样的话。你去看一下后台。看让不让你用数据表优化。做数据要严谨。不然以后问题就多
回复

使用道具 举报

翎羽飞扬 发表于 2006-2-25 00:09:39 | 显示全部楼层
是不是从低版本到高版本直接从后台导入就行了??
比如:从3.多到4.0
回复

使用道具 举报

12153556 发表于 2006-3-5 02:37:56 | 显示全部楼层
不知道这样降级以后,显示的是否正常!?
回复

使用道具 举报

风允帆 发表于 2007-3-20 14:51:15 | 显示全部楼层
纯支持!
回复

使用道具 举报

admin18 发表于 2007-12-9 10:29:28 | 显示全部楼层
我的数据也是无法导入哦 就是分卷导入后,后台显示的是一片空白
回复

使用道具 举报

nic0301 发表于 2007-12-9 10:31:23 | 显示全部楼层

回复 9# 的帖子

搬家请注意前后的MYSQL版本
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:18 , Processed in 0.031812 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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