Windows中mysql怎么升级_Windows下升级mysql问题

出于历史原因,今天看到停运一段时间的云服务器还有半年有效时间,上面跑着的MySQL连上去也是各种报错,但总的来说还是不影响测试时的使用。但在做实验时发现数据库无法支持 utf8mb4,因此要动手把它给升级了。

旧库版本 6.0,但MySQL官网最新版也才5.7,一开始以为是以前维护者下载了源码改版本后编译,在打开我自己用于记录数据库相关信息的记事本时,无意间看到以前配置过的 MySQL NDB 版截图,原来NDB就是6.x,与普通MySQL的5.x有相对应的关系。

1、数据导出,虽然它的数据可能已经不再有用,但出于运维安全的习惯,还是要做一次备份。导出的数据文件达 1.2G。

> mysqldump -h127.0.0.1 -uroot -p --all-databases > data.sql

2、停服务,MySQL在安装时已注册为windows服务,直接点击停止服务即可

3、卸载旧版MySQL,在添加删除程序中删除即可。

4、在官网下载最新安装程序,并安装之。

5、导入原数据

> mysql -h127.0.0.1 -uroot -p < data.sql

# 问题来了,导入时报错『 Unknown command '\n' 』,这数据才刚出炉不到半小时,版本虽然旧点但相差也不大,使用UtralEdit打开看不出有什么异常,思来想去,应该是字符集问题。查了下原来的表格,使用UTF8,加个参数试试,搞定!

> mysql -h127.0.0.1 -uroot -p --default-character-set=utf8 < data.sql

6、创建新用户

* 使用MySQL官网自带的GUI客户端连接,在创建新用户时提示

Unhandled exception: DbMySQLQuery.resultFieldStringValueByName():

MySQL_ResultSet::isNull: invalid value of 'columnLabel'

* 使用GUI不行,那我换命令行试试,创建过程可以,心里正小庆幸时,flush privileges 报错了

Flush Privileges in My SQL gives HY0000 Unknown Error

* 真是坑中坑,问题一个接一个,查了很多MySQL官方论坛对这个问题的解释,基本上都是建议恢复到原来的NDB版本,直到该问题被解决。拜托,我就是为了升级才换过来的,让我又回去,这不是瞎折腾嘛。

试着升级,MySQL中带有mysql_upgrade命令,官网对该命令有解释,检查并升级表。

> mysql_upgrade -h127.0.0.1 -uroot -p

出现很多个OK,中间还有一个很明显的修复操作,显示『Re-installing the sys schema』,再试用GUI,完成,各种操作都正常。

结论:对于开源软件数据库,如果没有精力应付时,尽量选择常规发布版,上了线再更换的机率更是微乎其微,能不动则不动。其它新鲜分支版就留给有时间、兴趣的人来研究吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值