L default ''0'', fid smallint(6) unsigned NOT NULL default ''0'', tid mediumint(8) unsigned NOT NULL default ''0'', nickname char(15) NOT NULL default '''', UNIQUE KEY sid (sid) ) ENGINE=HEAP MAX_ROWS=1000;
替换为
[Copy to clipboard] [ - ] CODE: CREATE TABLE `cdb_sessions` ( `sid` char(6) binary 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'', `nickname` char(15) NOT NULL default '''', UNIQUE KEY `sid` (`sid`) ) TYPE=HEAP MAX_ROWS=2000;
这一步更为简单的办法就是删除掉关于cdb_sessions表的这一段,将来全新装一个d4,将这个表导出 将其内容复制,粘贴到 sql文件的最后面
保存后,再把这个sql文件导入到你的库中
就OK了
用这两种方法就可以很方便的把4.1和5.0的mysql数据库降级到4.0 简单的过程就是 A导出4.1/5.0的库 B进行处理,转换成gbk字符集 C彻底卸载4.1或者5.0 D安装4.0.26 E然后导入处理完的库
降级的时候导出库可以用这个方法 mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse --compatible=mysql40 > d4.sql 这样导出的就是4.0的库勒
至于mysql版本的升级, 如果数据文件中有中文信息,那么将MySQL 4.0的数据文件,直接拷贝到MySQL 4.1中就是不可以的,即便在my.ini中设置了default-character-set为正确的字符集。虽然貌似没有问题,但MySQL 4.1的字符集有一处非常恼人的地方,以gbk为例,原本MySQL 4.0数据中varchar,char等长度都会变为原来的一半 |