尝试升级MySQL4.0到5.1
[文章作者:叶歆昊 最后修改:2010-07-19 转载请注明原文链接:http://littz.com/mysql4-0-try-to-upgrade-to-5-1.html]
说说今天升级MySQL数据的事情,先在自己的电脑上做测试,从下午3点一直到晚上12点,打算从4.0升级到5.1,不停地出现各种各样的错误,虽然麻烦,不过通过网上查找各种资料,不停地解决这些错误,到了大概凌晨1点,基本上是看到曙光,了解了各种问题的原因,具体如下。
1、MySQL启动时的1067错误
这个错误算是比较常见的,如果下载是MySQL的WINDOWS ZIP版本,并且没有解压在C:\MySQL文件夹下的话,一般都会出现这个错误,解决方法也很简单,在某个文件夹下(默认在C:\Windows)建立一个my.ini文件,这个文件是mysql的配置文件,配置MySQL在那个文件夹下安装的,端口、连接数等信息。内容如下
[client] port= 3306 [mysqld] port= 3306 basedir= D:\Program\Tools\mysql datadir= D:\Program\Tools\mysql\data skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M server-id= 1 [mysqldump] quick max_allowed_packet = 16M [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
对于单一的MySQL而言,主要的还是port,basedir,datadir这三个参数,然后命令提示符下执行以下操作
net stop mysql #停止MySQL服务 mysqld --remove #在WINDOWS服务中移除MySQL服务 mysqld --install mysql --defaults-file="D:\Program\Tools\mysql\my.ini" #安装MySQL服务,如果my.ini在WINDOWS文件夹下就不需制定defaults-file net start mysql #启动MySQL服务
1067错误问题解决
2、MySQL服务启动后几秒钟自动停止
一开始,虽然我知道直接复制旧的data文件夹到新的mysql目录中是无效的,但还是想试试这样简单的方法。于是启动mysql5.1时就出现上述错误,经过反复卸载安装检查后发现,只要拷贝旧版的数据data文件夹下任何数据库的文件到新版本的mysql下,就会出现这样的错误。
解决办法只有换种升级方法
3、导入MySQL 4.0数据文件时出现众多错误
第二种升级方法,先在服务器上执行下列指令
mysqldump -uroot -ppassword abc>abc.sql
导出abc数据库的sql文件,拷贝到测试电脑上,安装好MySQL5.1,创建好abc数据库,然后使用
mysql -uroot -ppassword abc
导入数据文件,出现非常多错误,基本上是字符编码错误。尝试用EmEditor文本编辑器修改,但是改了一个错误,接着又出现下一个错误了,由于数据库量大,导致错误非常多,这样一个一个字符改明显不行。
接着尝试使用phpmyadmin导入这个sql文件,并选择了mysql40模式,gbk编码。但是还是有这些错误,无奈尝试几小时都不成功。
偶然间发现phpmyadmin首页上显示phpmyadmin版本2.11.x,MySQL client version:5.0.x,MySQL服务器端版本5.1.x,估计这个MySQL客户端版本应该是phpmyadmin或者php扩展库支持的版本,可能是现在安装的mysql服务器版本太高,phpmyadmin虽然是最新的版本,但还是不支持这种mysql版本。
最终解决方案
1、mysql4.0服务器上使用phpmyadmin导出各个数据库的sql文件
2、在测试电脑上安装mysql5.0
3、使用测试电脑上创建对应的数据库,数据库整理选择gbk
4、使用测试电脑上的phpmyadmin导入sql,选择模式mysql40,文件编码gbk。
5、命令行下输入mysql_upgrade -uroot -ppassword升级数据文件。
6、phpmyadmin查看数据库,正确显示。OK
注:phpmyadmin应为最新的多国语言版本,非utf-8 only版本,某则可能出现网页查看时乱码的情况。
接下来还要做的事情
在服务器上做升级,看看JSP程序能否连接上数据库
有空的时候尝试把gbk编码更改为utf-8
以后再把mysql5.0升级到5.1
目前还存在的问题
phpmyadmin能正常查看到数据库,并且能够正常显示。但是如果使用命令行登录mysql,show databases;居然连这个导入进来的数据库都看不到!难道是其他编码命令行下不显示出来,本来应该是会显示有这个数据库,但是乱码吧。
总结
很多事情不能一起来做,像我之前尝试一次性把服务器更换为linux系统,并且数据库升级,服务器发布软件都升级什么的,但是出现的问题太多,根本找不到原因在哪。
这样分步来做就好多了。
2008/06/12 于 22:22:00
贵博客的模板很漂亮!能否共享?。。
2008/06/12 于 22:23:00
恩……js的留言方式是用的什么插件啊?
2008/06/13 于 00:21:00
我记得我是在一个有关Wordpress论坛上下载的,现在已经比较难找到原下载地址,而且我也修改了比较多。只是从模板信息里找到了原作者的网站http://www.keephelp.com/,你可以联系原作者看看。主题名字叫Clean Clear
发表评论有个Ajax Comments的插件