實現:
1. 安裝cmake依賴包
# yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libmhash-devel
2. 下載Cmake的源碼包
# wget # tar zxvf cmake-2.8.7.tar.gz # cd cmake-2.8.7 # ./configure # make && make install
3. 編譯安裝配置MySQL
3.1 創建用戶及所需目錄
# mkdir -pv /opt/mysql/data # mkdir /var/log/mysql # groupadd mysql //創建mysql用戶和mysql組 # useradd -g mysql -s /usr/sbin/nologin mysql
3.2 cmake編譯安裝
# tar zxvf mysql-5.5.22.tar.gz # cd mysql-5.5.22 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/opt/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0 # make && make install
3.3 複製配置文件及設置權限
# cp support-files/my-medium.cnf /etc/my.cnf # chmod +x /usr/local/mysql # chown -R mysql:mysql /usr/local/mysql # chown -R mysql:mysql /usr/local/mysql/data
3.4 配置啓動腳本及開機自啓動
# cp support-files/mysql.server /etc/init.d/mysqld # chmod +x /etc/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on
3.5 修改配置文件,在[mysqld]中添加
# vim /etc/my.cnf datadir = /opt/mysql/data log-error = /var/log/mysql/data/error.log pid-file = /var/log/mysql/data/mysql.pid user = mysql tmpdir = /tmp
3.6 初始化數據庫
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/opt/mysql/data
3.7 手動啓動MySQL
# service mysqld start
4. 測試MySQL是否啓動,查看是否有mysql進程,查看是否有mysql端口
# ps -ef | grep mysql # netstat -tnlp | grep 3306
5. 添加mysql的軟鏈接可以使用用戶直接使用
# ln -sv /usr/local/mysql/bin/mysql /usr/bin/mysql # ln -sv /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin # ln -sv /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump # mysqladmin version //獲取MySQL的版本信息測試mysql,mysqladmin,mysqldump命令是否能正常使用
附錄:
附錄1:centos 5.8 編譯 mysql 5.5.32時,參數-DWITH_SSL=system報錯
在centos 5.8上編譯mysql5.5.32,加了-DWITH_SSL=system參數,編譯時報錯如下,
/usr/local/src/mysql-5.5.32/vio/viossl.c: In function 'ssl_do':/usr/local/src/mysql-5.5.32/vio/viossl.c:175: error: 'SSL_OP_NO_COMPRESSION' undeclared (first use in this function)/usr/local/src/mysql-5.5.32/vio/viossl.c:175: error: (Each undeclared identifier is reported only once/usr/local/src/mysql-5.5.32/vio/viossl.c:175: error: for each function it appears in.)make[2]: *** [vio/CMakeFiles/vio.dir/viossl.c.o] Error 1make[1]: *** [vio/CMakeFiles/vio.dir/all] Error 2make: *** [all] Error 2
網上查了一下,應該是openssl的版本太低造成的,在centos6上編譯就沒有這個問題。官方已經給出瞭解決的patch,內容如下
— mysql-5.5.32/vio/viossl.c~2013-03-25 14:14:58.000000000 +0100
+++ mysql-5.5.32/vio/viossl.c2013-04-18 16:58:38.552557538 +0200
@@ -172,8 +172,10 @@
SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout);
SSL_set_fd(ssl, vio->sd);
#ifndef HAVE_YASSL
#ifdef SSL_OP_NO_COMPRESSION
SSL_set_options(ssl, SSL_OP_NO_COMPRESSION);
#endif
#endif
if ((r= connect_accept_func(ssl)) < 1)
{
意思就是說在源碼的vio/viossl.c的文件中的相應位置,添加上加粗的那2行,然後重新make編譯即可。