LNMP一键安装包升级Mysql5.5、Nginx1.4和PHP5.3的方法
这里是用的LNMP一键安装包,目前我升级后的版本为:PHP – 5.3.28,Mysql – 5.5.28,Nginx – 1.4.7。(mysql5.5虽然有出众的性能,但是也很占用内存,所以建议内存小于512M的VPS不要升级),另外千万不要升级php5.4….原理不解释。
LNMP集成环境已经提供了PHP和Nginx的升级脚本,即upgrade_php.sh和upgrade_nginx.sh。当我们需要升级PHP或Nginx的时候,只需要执行这两个脚本然后根据提示输入要升级到的相应的PHP或Nginx的版本好就可以自动升级了。但是,到目前为止LNMP最新版还没有提供Mysql的升级脚本。不过另有高人为LNMP提供了Mysql的升级脚本,目前该脚本源码放在google code上,项目地址:https://code.google.com/p/huiwei19。
先说明下,mysql升级后数据不会丢失,但是为了以防万一,一定要备份下。另外mysql5.1默认的数据库路径为/usr/local/mysql/var
,升级到mysql5.5之后数据库路径为/usr/local/mysql/data
,所以mysql启动会失败,解决方案就是修改/etc.my.cnf
里面的数据库路径。具体方法我在下面有说明.
废话不多说,下面介绍详细的升级步骤:
1,下载mysql升级脚本
执行以下命令下载升级脚本:
1
|
wget http://huiwei19.googlecode.com/files/upgrade_mysql.sh
|
下载完成后赋予该文件可执行权限:
1
|
chmod 755 upgrade_mysql.sh
|
2,安装cmake
由于mysql源码需要使用cmake工具编译,所以首先要检测你的环境是否安装了cmake,如果没有则需要安装cmake。(该升级脚本虽然会自动检测安装cmake,但是有时候安装会出错,我升级了几台VPS自动安装cmake都出错了,所以建议大家手动安装cmake)
首先,下载cmake。可以在其官方网站(http://www.cmake.org)下载。
1
2
3
4
5
6
7
8
9
|
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
#然后执行
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./configure
gmake
make install
#当cmake安装成功就可以升级mysql了。
|
3,升级MYSQL
升级有风险,大家在升级前一定要备份好数据库。这个升级脚本会自动把旧的数据库重命名为mysql.old。
升级mysql和升级php以及nginx一样,直接执行以下mysql升级脚本就会自动进入升级了,根据提示输入想要升级到的版本号,按任意键系统就会自动下载源码包编译安装mysql了。
1
|
./upgrade_mysql.sh
|
当mysql安装完成后执行以下代码,避免data目录权限问题:
1
|
chown -R mysql:mysql /usr/local/mysql/data
|
然后启动mysql,如果启动失败,出现如下类型的错误:
1
|
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/aliyun.pid).
|
请修改 编辑/etc/my.cnf,然后把
1
2
3
|
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
|
改为
1
2
3
|
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
|
因为mysql5.1的数据库放在var文件夹里面,5.5的放在data文件夹里面,启动时找不到数据库,所以会报错。
再执行下面的代码并输入Mysql密码,修复5.1.x升级到5.5.x的一系列错误:
/usr/local/mysql/bin/mysql_upgrade -u root -p
成功执行到这里,说明你的mysql已经升级成功。但是如果要在php中正常使用mysql,还需要重新编译PHP,否则没有对应的libmysqlclient.so。这也是我把mysql升级放到第一的原因。接下来我们升级PHP。
4,升级PHP
升级PHP比较简单,LNMP已经提供了PHP升级脚本,所以直接执行下面的代码,根据提示输入要升级到的版本号系统就会自动下载PHP源码编译安装。
./upgrade_php.sh
重新编译PHP后,如果你使用了eAccelerator,那么你还需要重新编译安装eAccelerator,这个也是直接执行LNMP的eAccelerator安装脚本就可以了。
./eaccelerator.sh
5,升级Nginx
升级Nginx方法跟升级PHP一样,也很简单,只需要执行以下升级脚本,输入版本号就会自动升级了。
./upgrade_nginx.sh
到这里,你的Mysql,PHP,Nginx就全部升级完成。我目前升级比较顺利,除cmake不能自动安装外,没有出现其他任何问题,如果大家升级遇到问题,可以在这里评论大家共同解决。
发表回复