Percona Server 5.6源码编译

Percona现在没有对el7提供稳定的二进制发行包,所以今天小测一下mysql的源码编译,使用的源码为Percona Server 5.6.19-67,环境为CentOS 7.0。

1. 编译依赖

MySQL的编译依赖下面程序:
g++ MySQL从5.6开始需要使用g++来编译源码。
cmake MySQL从5.5开始,需要使用cmake 2.8+进行工程管理。
bison MySQL的语法解析器用于自动生成语法分析器程序,Bison把LALR形式的上下文无关文法描述转换为可做语法分析的C或C++程序
ncurses-devel 它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面
libaio libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高。
zlib MySQL压缩支持
libxml 用于XML输入输出方式的支持,MySQL的可选功能依赖这个包。
openssl 使用openssl 安全socket方式进行通信
使用yum来安装:

2. 下载源代码

3. CMAKE常见的编译选项

CMAKE_BUILD_TYPE 编译的版本类型:RelWithDebInfo和Debug,不同之处是RelWithDebInfo会进行优化。
WITH_DEBUG 指定是否有debugging信息,一般用于源码调试时,打开WITH_DEBUG,生产环境关闭。
ENABLED_PROFILING 是否可以使用show profile显示操作执行的详细信息。
DEFAULT_CHARSET 默认字符集,可以在启动的配置文件中指定,默认为latin1,常用utf8,gbk等。
DEFAULT_COLLATION 默认字符比较、排序规则,默认为latin1_general_ci,常用utf8_general_ci,gbk_chinese_ci等。
WITH_EXTRA_CHARSETS 指定其他可能使用的字符集。
WITH_SSL 指定SSL的类型,从5.6.6开始默认bundled类型,此外也可以指定SSL库的路径地址。
WITH_ZLIB 指定zlib的类型,用于压缩功能。
WITH_ 指定编译支持的存储引擎,默认支持MyISAM,MERGE,MEMORY,CSV存储引擎。
WITH_EMBEDDED_SERVER 指定是否编译libmysqld嵌入式库。
INSTALL_LAYOUT 安装的布局类型。
CMAKE_INSTALL_PREFIX 指定make install安装的目标路径。
SYSCONFDIR 指定配置文件的默认路径。
MYSQL_DATADIR 指定data目录的默认路径。
CMAKE_INSTALL_PREFIX MySQL Server的安装路径
MYSQL_UNIX_ADDR 默认Socket文件的路径
MYSQL_TCP_PORT 默认端口
ENABLED_LOCAL_INFILE 是否可以load client本地文件,即load data local命令。默认情况下,常见的二进制release都开启了这个功能,而编译默认参数没有开启了这个功能。此外,mysqld的启动参数–local-infile=0同样可以关闭这个功能。(6.1.6 Security Issues with LOAD DATA LOCAL)
WITH_READLINE 启用类似shell的行编辑模式 但在这个版本中,该选项已经不存在,而行编辑的功能已经开启了。即可以使用下面的快捷键:
* ctrl+r 可以搜索历史命令,很常用的一个
* ctrl+a 到行首
* ctrl+e 到行尾
* ctrl+u 删除到行首
* ctrl+k 删除到行尾
* ctrl+l 类似 clear 命令效果
* ctrl+y 粘贴
mysqld-user mysqld的启动用户

4. 下面是编译和配置的过程

^^
参考:
Percona Docs
Frank.Wang MySQL数据库运维-安装部署
GNU bison http://zh.wikipedia.org/wiki/GNU_bison
mysql编译参数with-readline http://bbs.linuxtone.org/archiver/?tid-9220.html
MySQL Source-Configuration Options http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

Posted in C|C++, Database, MySQL.
  1. Pingback: ray ban clubmaster