cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
编译安装cmake
- # tar xf cmake-2.8.8.tar.gz
- # cd cmake-2.8.8
- # ./configure
- # make
- # make install
编译安装MySQL-5.5.28a
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure对应的是 cmake .
./configure --help 对应的是 cmake . -LH 或者是 ccmake .
创建mysql用户与组
- # groupadd -r mysql
- # useradd -g mysql -r -s /sbin/nologin mysql
准备mysql的数据目录
- # fdisk /dev/sda -----创建一个新分区类型为8e,创建分区过程就不再给出了
- 创建一个逻辑卷
- # partprobe /dev/sda
- # pvcreate /dev/sda5
- # vgcreate myvg /dev/sda5
- # lvcreate -L 10G -n mydata myvg
- # mke2fs -j /dev/myvg/mydata
挂载选项设置
- # vim /etc/fstab
- 添加内容如下
- /dev/myvg/mydata /mydata ext3 defaults 0 0
- 保存退出
- # mount -a
数据目录配置
- # cd /mydata
- # mkdir data
- # chown -R mysql.mysql data
编译安装
- # tar xf mysql-5.5.28.tar.gz
- # cd mysql-5.5.28
- # 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
- # make
- # make install
指定安装文件的安装路径时常用的选项
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ----指定残可安装路径(默认的就是/usr/local/mysql)
- -DMYSQL_DATADIR=/data/mysql ----mysql的数据文件路径
- -DSYSCONFDIR=/etc -----配置文件路径
编译过程中启用其他存储引擎时指令介绍
- -DWITH_INNOBASE_STORAGE_ENGINE=1 ----使用INNOBASE存储引擎
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 -----常应用于日志记录和聚合分析,不支持索引
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -----黑洞存储引擎
编译过程中取消一些存储引擎指令介绍
- -DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
- 示例如下:
- -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
- -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
- -DWITHOUT_PARTITION_STORAGE_ENGINE=1
编译进过程中功能启用的指令介绍
- -DWITH_READLINE=1 ----支持批量导入mysql数据
- -DWITH_SSL=system ----mysql支持ssl会话,实现基于ssl的数据复
- -DWITH_ZLIB=system ----压缩库
- -DWITH_LIBWRAP=0 ---是否可以基于WRAP实现访问控制
其他功能指令
- -DMYSQL_TCP_PORT=3306 ----默认端口
- -DMYSQL_UNIX_ADDR=/tmp/mysql.sock ----默认套接字文件路径
- -DENABLED_LOCAL_INFILE=1 -----是否启用LOCAL_INFILE功能
- -DEXTRA_CHARSETS=all-----是否支持额外的字符集
- -DDEFAULT_CHARSET=utf8 -----默认编码机制
- -DDEFAULT_COLLATION=utf8_general_ci -----设定默认语言的排序规则
- -DWITH_DEBUG=0 -----DEBUG功能设置
- -DENABLE_PROFILING=1 -----性能分析功能是否启用
准备mysql服务脚本
- # cd /usr/local/mysql/
- # cp support-files/mysql.server /etc/init.d/mysqld