源码编译:
根据机器操作系统的系统库编译出更高效的MySQL 服务器。
必备的包和工具
gcc/g++ :MySQL 5.6开始,需要使用g++进行编译。
cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本。
bison :MySQL语法解析器需要使用bison进行编译。
ncurses-devel :用于终端操作的开发包。
zlib :MySQL使用zlib进行压缩。
功能需要的包:
libxml :用于XML输入输出方式的支持。
openssl :使用openssl安全套接字方式通信。
dtrace :用于诊断MySQL问题。
MySQL 编译参数
CMAKE_BUILD_TYPE | 编译的版本类型:RelWithDebInfo和Debug,不同之处是RelWithDebInfo会进行优化。 |
CMAKE_INSTALL_PREFIX | 指定make install安装的目标路径。 |
SYSCONFDIR | 指定配置文件的默认路径。 |
MYSQL_DATADIR | 指定data目录的默认路径。 |
WITH_DEBUG | 指定是否有debugging信息,一般用于源码调试时,打开WITH_DEBUG,生产环境关闭。 |
ENABLED_PROFILING | 指定是否可以使用show profile显示操作执行的详细信息。 |
DEFAULT_CHARSET | 指定默认字符集,可以在启动的配置文件中指定。 |
DEFAULT_COLLATION | 指定默认字符比较、排序的规则。 |
WITH_EXTRA_CHARSETS | 指定其他可能使用的字符集。 |
WITH_SSL | 指定SSL的类型,从5.6.6开始默认bundled类型,此外也可以指定SSL库的路径地址。 |
WITH_ZLIB | 指定zlib的类型,用于压缩功能。 |
WITH_storage_STORAGE_ENGINE | 指定编译支持的存储引擎,默认支持MyISAM,MERGE,MEMORY,CSV存储引擎。 |
ENABLED_LOCAL_INFILE | 指定是否允许使用load data infile功能。 |
WITH_EMBEDDED_SERVER | 指定是否编译libmysqld嵌入式库。 |
INSTALL_LAYOUT | 指定安装的布局类型。 |
MySQL 编译:
CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
CXX=g++
CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
export CFLAGS CXX CXXFLAGS
cmake . [PARAMETERS]
make -j & make install