自从编译 MySQL 5.5.6 及 5.5.7 两个RC 一直通不过,我就转投了 MySQL 5.1.x 稳定分支.不过就在前几天,MySQL 5.5.x 分支居然GA了. 一直对5.5.x 没有信心的我于是便想再尝试一下。
火速下载了源码包(http://mysql.mirrors.pair.com/Downloads/MySQL-5.5/mysql-5.5.8.tar.gz),解压,进入目录.
值得注意的是,MySQL 5.5.8 GA 及以上使用了 CMake 编译,动手之前最好阅读下源码包下的 README 和 INSTALL-SOURCE.关于CMake 用法,可以参见:http://forge.mysql.com/wiki/CMake
我的编译参数:
[root@PowerPC mysql-5.5.8]# cmake . \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DENABLED_PROFILING:BOOL=ON \
> -DENABLE_DEBUG_SYNC:BOOL=OFF \
> -DINSTALL_LAYOUT:STRING=STANDALONE \
> -DMYSQL_DATADIR:PATH=/var/run/mysql \
> -DMYSQL_MAINTAINER_MODE:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=ON \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_SSL:STRING=bundled \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled \
> -LH
查看更多参数:cmake . -LAH # H为打印说明开关符、A为打印所有开关符
乍用cmake 替代 autotools,很多人会很不习惯。MySQL也有此考虑,可以使用 ./cmake/configure.pl 生成 configure.
生成makefile文件,没有问题的话,就直接make 编译.耐心等待即可,且有进度(%)显示.
编译完成后,make install 安装到指定目录.
按照之前的打算,使用mysql_install_db 回复数据库就OK了。
可是我错了,运行完
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/run/mysql --user=mysql
后,报错了~~
搜索了一下,擦~居然是个bug(参见:http://bugs.mysql.com/bug.php?id=52444),很多像我一下从MySQL 5.1.x 升级到 5.5.x 的用户都遇到了,该patch 已经提交了,不过修复可能要在下一个版本才能好。
无奈,只好再试试其他办法了。按照MySQL 5.5 手册的说法,
虽然期间有过error 出现,不过好在结果还是OK的.
试着下启动MySQL, mysqld_safe --user=mysql & ,查询、删除都没有问题。
至此,MySQL 5.5.8 安装算是完成了.
兴高采烈的准备重启服务器的服务,
service myservice stop && service myservice start.
打开网站,503!!!
ps -e 查看进程,php-fpm 没有起来……
迅速的手动启动,杯具了~
囧rz.....
不知道是不是又是个bug?看来这个问题,只能提交到邮件列表了……本人无能为力.
先用php-fcgi 顶替吧,运行 php-fcgi -v.
目前情绪稳定.
火速下载了源码包(http://mysql.mirrors.pair.com/Downloads/MySQL-5.5/mysql-5.5.8.tar.gz),解压,进入目录.
值得注意的是,MySQL 5.5.8 GA 及以上使用了 CMake 编译,动手之前最好阅读下源码包下的 README 和 INSTALL-SOURCE.关于CMake 用法,可以参见:http://forge.mysql.com/wiki/CMake
我的编译参数:
[root@PowerPC mysql-5.5.8]# cmake . \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DENABLED_PROFILING:BOOL=ON \
> -DENABLE_DEBUG_SYNC:BOOL=OFF \
> -DINSTALL_LAYOUT:STRING=STANDALONE \
> -DMYSQL_DATADIR:PATH=/var/run/mysql \
> -DMYSQL_MAINTAINER_MODE:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=ON \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_SSL:STRING=bundled \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled \
> -LH
查看更多参数:cmake . -LAH # H为打印说明开关符、A为打印所有开关符
乍用cmake 替代 autotools,很多人会很不习惯。MySQL也有此考虑,可以使用 ./cmake/configure.pl 生成 configure.
生成makefile文件,没有问题的话,就直接make 编译.耐心等待即可,且有进度(%)显示.
编译完成后,make install 安装到指定目录.
按照之前的打算,使用mysql_install_db 回复数据库就OK了。
可是我错了,运行完
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/run/mysql --user=mysql
后,报错了~~
[ERROR] Incorrect definition of table mysql.proc: expected column 'comment' at position 15 to have type text, found type char(64).
搜索了一下,擦~居然是个bug(参见:http://bugs.mysql.com/bug.php?id=52444),很多像我一下从MySQL 5.1.x 升级到 5.5.x 的用户都遇到了,该patch 已经提交了,不过修复可能要在下一个版本才能好。
无奈,只好再试试其他办法了。按照MySQL 5.5 手册的说法,
mysqld --user=mysql --skip-grant-tables & #启动mysql
mysql_upgrade #数据库升级
虽然期间有过error 出现,不过好在结果还是OK的.
试着下启动MySQL, mysqld_safe --user=mysql & ,查询、删除都没有问题。
至此,MySQL 5.5.8 安装算是完成了.
兴高采烈的准备重启服务器的服务,
service myservice stop && service myservice start.
打开网站,503!!!
ps -e 查看进程,php-fpm 没有起来……
迅速的手动启动,杯具了~
[root@PowerPC mysql-5.5.8]# php-fpm
php-fpm: /usr/local/mysql/lib/libmysqlclient.so.16: no version information available (required by php-fpm)
囧rz.....
不知道是不是又是个bug?看来这个问题,只能提交到邮件列表了……本人无能为力.
先用php-fcgi 顶替吧,运行 php-fcgi -v.
[root@PowerPC mysql-5.5.8]# php-fcgi -v
-bash: fork: Cannot allocate memory
[root@PowerPC mysql-5.5.8]# ps -e
-bash: fork: Cannot allocate memory
[root@PowerPC mysql-5.5.8]# ps -e
-bash: fork: Cannot allocate memory
[root@PowerPC mysql-5.5.8]# ls
-bash: fork: Cannot allocate memory
[root@PowerPC mysql-5.5.8]# top
-bash: fork: Cannot allocate memory
[root@PowerPC mysql-5.5.8]# php-fpm
-bash: fork: Cannot allocate memory
[root@PowerPC mysql-5.5.8]# top
-bash: fork: Cannot allocate memory
目前情绪稳定.