一,准备工作
先下载所需的安装包mysql-5.5.36.tar.gz,下载地址 http://mirrors.sohu.com/mysql/MySQL-5.5/ ,注意,MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。因此,我们首先要在系统中源码编译安装cmake工具,我使用的是cmake-3.1.0.tar.gz。
编译安装的目录:/usr/local/
实验环境:CentOS6.6。
二,编译安装cmake
<code> [root@www cmake-3.1.0]# tar xf cmake-3.1.0.tar.gz [root@www cmake-3.1.0]# cd cmake-3.1.0/ [root@www cmake-3.1.0]# ./bootstrap [root@www cmake-3.1.0]# make [root@www cmake-3.1.0]# make install </code>
三,编译安装mysql-5.5.36
1、使用cmake编译mysql-5.5
使用cmake编译mysql-5.5,cmake指定编译选项的方式不同于make,其实现方式对比如下:
<code> ./configure ----> cmake . ./configure --help ----> cmake . -LH 或者 ccmake . </code>
指定安装文件的安装路径时常用的选项:
<code> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #默认安装路径 -DMYSQL_DATADIR=/data/mysql #mysql数据存放的目录 -DSYSCONFDIR=/etc #配置文件存放目录 </code>
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
<code> -DWITH_INNOBASE_STORAGE_ENGINE=1 # InnoDB存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 #Archive存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 #黑洞存储引擎 -DWITH_FEDERATED_STORAGE_ENGINE=1 </code>
若要明确指定不编译某存储引擎,可以使用类似如下的选项:
<code> -DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 </code>
比如:
<code> -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 </code>
如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
<code> -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 </code>
其它常用的选项:
<code> -DMYSQL_TCP_PORT=3306 #默认端口 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock #默认套接字 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all #支持额外的字符集 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DENABLE_PROFILING=1 #启用性能分析功能 </code>
如果想清理此前的编译所生成的文件,则需要使用如下命令:
<code> make clean rm CMakeCache.txt </code>
2、编译安装
<code> [root@www ~]# mkdir /mydata/data -p [root@www ~]# groupadd -r mysql [root@www ~]# useradd -g mysql -r -d /mydata/data mysql [root@www ~]# tar xf mysql-5.5.36.tar.gz [root@www ~]# cd mysql-5.5.36/ [root@www mysql-5.5.36]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/mydata/data \ -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 [root@www mysql-5.5.36]# make [root@www mysql-5.5.36]# make install </code>
3、安装并初始化mysql-5.5.36
<code> [root@www ~]# chown -R mysql:mysql . [root@www ~]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data [root@www ~]# chown -R root . [root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf [root@www support-files]# vim /etc/my.cnf 39 thread_concurrency = 4 40 datadir = /mydata/data ------> 修改数据文件路径 [root@www ~]# vim /etc/profile.d/mysql.sh export PATH=$PATH:/usr/local/mysql/bin/ ------>创建此文件添加此行 [root@www ~]# cd /usr/local/mysql [root@www mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@www mysql]# chmod +x /etc/init.d/mysqld [root@www mysql]# chkconfig --add mysqld [root@www mysql]# chkconfig mysqld on </code>
四,测试
<code> [root@www support-files]# service mysqld start Starting MySQL... SUCCESS! [root@www support-files]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.36-log Source distribution -----> 源码版本 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> </code>