编译安装 MySQL 5.5.8 GA 通过 

自从编译 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

我的编译参数:
[[email protected] 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 没有起来……

迅速的手动启动,杯具了~

[[email protected] 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.

[[email protected] mysql-5.5.8]# php-fcgi -v
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# ps -e
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# ps -e
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# ls
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# top
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# php-fpm
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# top
-bash: fork: Cannot allocate memory


目前情绪稳定.
Jaz Chen 

您好~

之前尋找 libmysqlclient.so.16: no version information available 的問
曾經逛到您的網站過

近日小弟已經找到解決方式
先將原有的 mysql 移除後
依照這個網址內的步驟進行安裝
URL:http://www.if-not-true-then-false.com/2010/install-mysql-on-fedora-centos-red-hat-rhel/



小弟本身使用 Fedora 14
安裝過程中 安裝了 compat-mysql51 這個套件
相關的判斷即可通過驗證


另一個解覺得方法再 mysql bugs 上有提到

您也可以透過重新 php 也可以解決問題
ucsir 

才发现这里还有个学习的好地方呢。。。。

评论