Percona Server 5.6源碼編譯

Percona如今沒有對el7提供穩定的二進制發行包,因此今天小測一下mysql的源碼編譯,使用的源碼爲Percona Server 5.6.19-67,環境爲CentOS 7.0。mysql

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來安裝: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

4. 下面是編譯和配置的過程

#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
相關文章
相關標籤/搜索