您好,欢迎访问一九零五行业门户网

RHEL5.7 64位源码编译安装MySQL-5.5.42遇到的问题

由于mysql从5.5之后的版本源码编译安装用cmake, make, make install安装,不用./configure,make,make install 安装,所以要看下系
由于mysql从5.5之后的版本源码编译安装用cmake, make, make install安装,不用./configure,make,make install 安装,所以要看下系统是不是有cmake这个命令,红帽企业版5默认是没有安装的,所以要手动安装(红帽6已默认安装)。cmake安装方法在网上搜下就行。
    安装mysql官方给的方法如下:
# preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# beginning of source-build specific instructions
shell> tar zxvf mysql-version.tar.gz
shell> cd mysql-version
shell> cmake .
shell> make
shell> make install
# end of source-build specific instructions
# postinstallation setup
shell> cd /usr/local/mysql
shell> chown -r mysql .
shell> chgrp -r mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -r root .
shell> chown -r mysql data
# next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
自己编译的时候后面加了参数:
    cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data/mydata -dsysconfdir=/etc -dwith_innobase_storage_engine=1 -dwith_archive_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwith_readline=1 -dwith_ssl=system -dwith_zlib=system -dwith_libwrap=0 -dmysql_unix_addr=/tmp/mysql.sock -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci
在执行make时编译失败:
[ 69%] building c object vio/cmakefiles/vio.dir/viossl.c.o
/root/mysql-5.5.42/vio/viossl.c: in function assl_doa:
/root/mysql-5.5.42/vio/viossl.c:175: error: assl_op_no_compressiona undeclared (first use in this function)
/root/mysql-5.5.42/vio/viossl.c:175: error: (each undeclared identifier is reported only once
/root/mysql-5.5.42/vio/viossl.c:175: error: for each function it appears in.)
make[2]: *** [vio/cmakefiles/vio.dir/viossl.c.o] error 1
make[1]: *** [vio/cmakefiles/vio.dir/all] error 2
make: *** [all] error 2
    这个为openssl版本太低的原因,mysql5.5无法在openssl-1.0.0及更低版本下编译导致的。查看了下openssl的版本为openssl-0.9.8,openssl version -a.
    如果不需要ssl可以去掉with_ssl配置项,也可以升级openssl的版本,另外更方便的方法可以在cmake之前打一个补丁。
    升级openssl:
    从ftp://ftp.openssl.org/source/下载
    tar -xvf openssl-1.0.2a.tar.gz
    cd openssl-1.0.2a
    ./config shared zlib
    make
    make install
    mv /usr/bin/openssl /tmp/
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl
    echo /usr/local/ssl/lib >> /etc/ld.so.conf
    ldconfig -v | grep openssl
    查看版本:
    openssl version -a
重新编译:
    先执行:
    make clean
    rm cmakecache.txt
然后重头再来,发现还是不成功(升级后还不成功到底啥原因呢?)。最后把-dwith_ssl=system 这项去掉编译成功。
下面为去掉dwith_ssl=system的参数:
cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data/mydata -dsysconfdir=/etc -dwith_innobase_storage_engine=1 -dwith_archive_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwith_readline=1 -dwith_zlib=system -dwith_libwrap=0 -dmysql_unix_addr=/tmp/mysql.sock -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci
--------------------------------------分割线 --------------------------------------
ubuntu 14.04下安装mysql
《mysql权威指南(原书第2版)》清晰中文扫描版 pdf
ubuntu 14.04 lts 安装 lnmp nginx\php5 (php-fpm)\mysql
ubuntu 14.04下搭建mysql主从服务器
ubuntu 12.04 lts 构建高可用分布式 mysql 集群
ubuntu 12.04下源代码安装mysql5.6以及python-mysqldb
mysql-5.5.38通用二进制安装
--------------------------------------分割线 --------------------------------------
本文永久更新链接地址:

其它类似信息

推荐信息