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来安装:
1 |
yum install gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel openssl libxml2 |
2. 下载源代码
1 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常见的编译选项
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. 下面是编译和配置的过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#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 |
^^
参考:
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
Pingback: ray ban clubmaster
奈绪真他妈不要脸和他那个
有本事就让人了解真实情况!不要封锁,不要欺骗!