最近需要使用MySQL Fabric,这货是MySQL5.6.10之后才出现的utility。手头机器装的是MySQL5.1,所以需要先把旧版MySQL升级成5.6版本。之前没有玩过MySQL,所以这次稍微费了点事。在此,把过程记录下来,希望能给有需求的人提供一点帮助。下面我们就正式开始。

1. 删除老版本MySQL

其实删除老版MySQL是一件很简单的事,但是开始时候由于担心各个包的依赖会导致各种问题,亦步亦趋来得很慢。其实只需要做到这么几步就可以了:

1.1 查看已安装的mysql版本并删除

查看已安装的mysql版本:rpm -qa | grep -i mysql

只要将client/server两个rpm包卸载就可以,过程中可能会提示某个包的依赖,加上--nodeps即可。

1.2 删除数据文件

删除/etc/my.cnf以及安装目录/usr/local/mysql/(该目录位置是安装时指定的)下的数据文件。 rm -r /etc/my.cnf rm -rf /usr/local/mysql

1.3 查看当前是否有mysql在运行

这一步经常会被忽视掉,所以需要稍微注意下。若有则kill掉。使用命令:ps -fe | grep mysql查看。
经过上面的三个步骤,基本就可以把旧版mysql卸载掉了。其他遗留部分在后续安装新版mysql时,会提示有不兼容的情况,到时候再逐个删除即可。

2. 源码安装MySQL5.6

前提一:既然是源码安装,肯定要先一份MySQL了。这个大家根据自己的需求下载,在此就不赘述了。前提二:安装cmake。MySQL的编译是使用的cmake,所以需要提前安装好。这个过程也很简单,就不说了。上面的准备工作都OK之后,就开始正式安装的过程了。

2.1 编译

与linux上其他的工程一样,MySQL的编译也就是make/make install。

2.1.1 cmake

在代码路径下执行:
cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/  \
-DMYSQL_DATADIR=/usr/local/mysql/data             \
-DSYSCONFDIR=/etc                                 \
-DWITH_MYISAM_STORAGE_ENGINE=1                    \
-DWITH_INNOBASE_STO…
上面的编译参数,有几个在后续的安装过程中需要使用,在此说明一下。其他的可以不用管,直接复制即可。 DCMAKE_INSTALL_PREFIX:MySQL的安装路径,安装完成后就是MySQL的工作路径。
DMYSQL_DATADIR:MySQL的数据文件位置。
DSYSCONFDIR:MySQL的配置文件位置。

2.1.2 make && make install

这个用过linux的都知道吧。。到此,编译的过程就完成了。

2.2 安装

# cd /usr/local/mysql
# chown -R mysql:mysql .
# chown -R mysql:mysql ./data
# scripts/mysql_install_db --defaults-file=/etc/my.cnf
# cp support-files/my-default.cnf /etc/my.cnf
上面这些都是MySQL的配置过程,其中的路径必须和上面cmake的参数保持一致。其中mysql的配置文件/etc/my.cnf需要注意,下面是我的配置文件,基本保持这样就可以了。
[mysql]
socket = /tmp/mysqld.sock

[mysqld]
user = mysql
datadir = /usr/local/mysql/data
port=3306

2.3 启动MySQL

有三种方法可以启动MySQL,分别如下:
方法一:
# bin/mysqld_safe --defaults-file=/etc/my.cnf
方法二:
# bin/mysqld
方法三:
cp support-files/msql.server /etc/init.d/mysql
service mysql start
相信大家对第三种方法更熟悉,使用start|restart|stop来启动/重启/停止一个服务的操作,在linux中使用的十分广泛。我也习惯使用这种方法,但是在使用过程中发现一个情况。使用service mysql start时,如果服务启动失败,基本不会有什么错误log输出,所以想判断是什么原因导致的启动失败就比较困难。这时候推荐使用方法二来启动,它会将错误原因输出,对于勘误难说容易的多。 查看启动是否成功:ps -ef | grep mysql

2.4 修改root密码

# ./bin/mysqladmin -u root password
两遍输入密码即可。修改完密码之后,需要重启一下mysql。到此,MySQL从老版本升级的过程就完成了。