尝试升级MySQL4.0到5.1

时间: 2008-06-08 / 分类: 技术相关 / 浏览次数: 1,689 views / 3个评论 发表评论

[文章作者:叶歆昊   最后修改: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系统,并且数据库升级,服务器发布软件都升级什么的,但是出现的问题太多,根本找不到原因在哪。

这样分步来做就好多了。

3个评论

  1. andyzown
    2008/06/12 于 22:22:00

    贵博客的模板很漂亮!能否共享?。。

  2. andyzown
    2008/06/12 于 22:23:00

    恩……js的留言方式是用的什么插件啊?

  3. LittleHZ
    2008/06/13 于 00:21:00

    我记得我是在一个有关Wordpress论坛上下载的,现在已经比较难找到原下载地址,而且我也修改了比较多。只是从模板信息里找到了原作者的网站http://www.keephelp.com/,你可以联系原作者看看。主题名字叫Clean Clear

    发表评论有个Ajax Comments的插件

发表评论

您的昵称 *

您的邮箱 * (绝对保密)

您的网站