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