MySQL自从5.5之后,就需要使用cmake来编译了,因此变为如下:
yum -y install cmake(这个就不要下源码装了,累)
一、以下内容#后表示解释内容,实际使用时应当删除
cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \#可不用本句,没多大意义
-DCMAKE_INSTALL_PREFIX=/usr/local/webroot/mysql/ \#MySQL安装目录
-DSYSCONFDIR=/usr/local/webroot/etc \#配置文件目录,需cp
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
\#安排个目录放mysql.sock文件把,可以设置为日志存放,data存放目录等位置
-DMYSQL_DATADIR=/usr/local/webroot/mysql/data/ \#数据库目录
-DCOMMUNITY_BUILD=ON \#表示社区版,意义不大,可去掉
-DENABLED_PROFILING=ON
-DWITH_INNOBASE_STORAGE_ENGINE= 1
\#必须选是,否则启动不了,估计是MySQL自身要。INNOBASE_STORAGE存储引擎
-DENABLED_LOCAL_INFILE=1
-DMYSQL_TCP_PORT=3306 \#端口,可去除本句,非必须
-DWITH_EXTRA_CHARSETS=all
\#本参数只有三个选项:all、complex、none,并不存在gbk、gb2312的选择,假如填写gbk,gb2312,utf8,最后将只得到utf8支持,也就是说创建不了gbk之类的表。
-DWITH_EMBEDDED_SERVER=1 \#参看flashgou.com的另一文章
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DWITH_READLINE=OFF \#参看flashgou.com的另一文章
-DWITH_SSL=no
\#启用ssl安全连接,除了银行和在线交易网站,用ssl实在没必要
-DWITH_DEBUG=OFF
后者不再有with-big-tables
二、mysql编译参数说明:
根据 ./configure --help 查看支持配置的参数
-pgcc和-O6编译
CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
总体性能可提高10%,当然如果服务器不是用奔腾处理器,就不必用它了,因为它是专为奔腾系统设计的
-static静态编译
--enable-static
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
以静态方式编译客户端和服务端,能提高13%性能
--enable-thread-safe-client
以线程方式编译客户端
--without-innodb
去掉innodb表支持,innodb是一种支持事务处理的表,适合企业级应用
--without-isam
去掉isam表类型支持,现在很少用了,isam表是一种依赖平台的表
--without-ndb-debug
取消导航调试
--localstatedir=/usr/local/mysql/var/
日志文件目录
--with-server-suffix=-enterprise-gpl
给MySQL加个后缀名,在用mysql登录的时候在版本号的后面可以看到
--without-debug
去除诊断模式,如果用--with-debug=full编译,大多数查询慢20%
--with-big-tables
大表支持
--with-extra-charsers=gbk,gb2312,utf8
设置支持gbk,gb2312,utf8字符集
--with-pthread
强制使用pthread库(posix线程库)
--enable-assembler
使用一些字符函数来汇编版本
--with-federated-storage-engine
这个参数已经被废除,代替它的是--with-plugin系列
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
mysql/support-files里面有配置文件范本,根据实际情况选择或者更改
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --defaults-file=/usr/local/mysql/my.cnf --pid-file=/usr/local/mysql/mysql.pid
设定默认值:默认空间路径;默认数据文件路径;默认用户;默认配置文件路径;默认PID文件路径。
-------------------------------------------------------
本脚步未加入的编译参数:
--with-charset=utf8
设置默认字符集
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如 unix
--with-tcp-port=3306
指定MySQL实例将监听TCP 3306端口