Percona如今没有对el7提供稳定的二进制发行包,因此今天小测一下mysql的源码编译,使用的源码为Percona Server 5.6.19-67,环境为CentOS 7.0。mysql
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来安装:c++
yum install gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel openssl libxml2
2. 下载源代码程序员
wget http://www.percona.com/redir/downloads/Percona-Server-5.6/LATEST/source/tarball/percona-server-5.6.19-67.0.tar.gz tar xvzf percona-server-5.6.19-67.0.tar.gz
3. CMAKE常见的编译选项sql
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的启动用户shell
#cmake配置 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/mysql/data -DSYSCONFDIR=/etc \ -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/mysql/run/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 #执行编译和安装 make -j && make install #添加环境变量 vim /etc/profile PATH=$PATH /usr/local/mysql/bin #建立用户 useradd mysql echo mysql > passwd --stdin mysql #修改参数配置文件,和编译配置一致。 vim /etc/my.cnf [mysqld] datadir=/var/data/mysql socket=/var/mysql/run/mysqld.sock [mysqld_safe] log-error=/var/log/mysql/mysqld.log pid-file=/var/mysql/run/mysqld.pid # 安装db cd /usr/local/mysql ./scripts/mysql_install_db # 建立目录 mkdir -p /var/data/mysql mkdir -p /var/mysql/run mkdir -p /var/log/mysql chown mysql:mysql /var/data/mysql chown mysql:mysql /var/mysql/run chown mysql:mysql /var/log/mysql # 启动mysqld mysqld_safe & # 修改root密码 mysql_secure_installation # 登陆mysql mysql -u root -S /var/mysql/run/mysqld.sock -p