自5.5以后的版本都需要cmake编译安装,so...先安装cmake编译器
安装必要的组件 yum -y install cmake yum -y install bison yum -y install ncurses-devel 添加账户 groupadd mysql useradd mysql -g mysql -M -s /bin/false 编译安装 tar zxvf mysql-5.5.24.tar.gz cd mysql-5.5.24 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_USER=mysql \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DWITH_READLINE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 make -j 2 && make install 注:-j 用来指定CPU核心数,可加快编译速度,不加也可以 以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。 如果只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,以下两步无需执行。 1、以mysql用户帐号的身份建立数据表: chown -R mysql.mysql /usr/local/mysql cp support-files/my-large.cnf /etc/my.cnf /usr/local/mysql/scripts/mysql_install_db \ --defaults-file=/etc/my.cnf \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data/ \ --user=mysql 2、加入开机自启动;并启动mysql cp support-files/mysql.server /etc/rc.d/init.d/mysqld chmod 755 /etc/rc.d/init.d/mysqld chkconfig --add mysqld chkconfig --level 35 mysqld on service mysqld start
从mysql5.5起,mysql源码安装开始使用cmake。下面是 mysql 5.5 与以前的参数对照:
configure Command | CMake Command |
./configure | cmake . |
./configure --help | cmake . -LH or ccmake . |
Parameter | configure Option | CMake Option | CMake Notes |
Installation base directory | --prefix=/usr | -DCMAKE_INSTALL_PREFIX=/usr | |
mysqld directory | --libexecdir=/usr/sbin | -DINSTALL_SBINDIR=sbin | interpreted relative to prefix |
Data directory | --localstatedir=/var/lib/mysql | -DMYSQL_DATADIR=/var/lib/mysql | |
Config directory (for my.cnf) | --sysconfdir=/etc/mysql | -DSYSCONFDIR=/etc/mysql | |
Plugin directory | --with-plugindir=/usr/lib64/mysql/plugin | -DINSTALL_PLUGINDIR=lib64/mysql/plugin | interpreted relative to prefix |
Man page directory | --mandir=/usr/share/man | -DINSTALL_MANDIR=share/man | interpreted relative to prefix |
Shared-data directory | --sharedstatedir=/usr/share/mysql | -DINSTALL_SHAREDIR=share | this is where aclocal/mysql.m4 should be installed |
Library installation directory | --libdir=/usr/lib64/mysql | -DINSTALL_LIBDIR=lib64/mysql | interpreted relative to prefix |
Header installation directory | --includedir=/usr/include/mysql | -DINSTALL_INCLUDEDIR=include/mysql | interpreted relative to prefix |
Info doc directory | --infodir=/usr/share/info | -DINSTALL_INFODIR=share/info | interpreted relative to prefix |
Parameter | configure Option | CMake Option | CMake Notes |
readline library | --with-readline | -DWITH_READLINE=1 | |
SSL library | --with-ssl=/usr | -DWITH_SSL=system | |
zlib library | --with-zlib-dir=/usr | -DWITH_ZLIB=system | |
libwrap library | --without-libwrap | -DWITH_LIBWRAP=0 |
Parameter | configure Option | CMake Option | CMake Notes |
TCP/IP port number | --with-tcp-port-=3306 | -DMYSQL_TCP_PORT=3306 | |
UNIX socket file | --with-unix-socket-path=/tmp/mysqld.sock | -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock | |
Enable LOCAL for LOAD DATA | --enable-local-infile | -DENABLED_LOCAL_INFILE=1 | |
Extra charsets | --with-extra-charsets=all | -DEXTRA_CHARSETS=all | default is "all" |
Default charset | --with-charset=utf8 | -DDEFAULT_CHARSET=utf8 | |
Default collation | --with-collation=utf8_general_ci | -DDEFAULT_COLLATION=utf8_general_ci | |
Build the server | --with-server | none | |
Build the embedded server | --with-embedded-server | -DWITH_EMBEDDED_SERVER=1 | |
libmysqld privilege control | --with-embedded-privilege-control | none | always enabled? |
Install the documentation | --without-docs | none | |
Big tables | --with-big-tables, --without-big-tables | none | tables are big by default |
mysqld user | --with-mysqld-user=mysql | -DMYSQL_USER=mysql | mysql is the default |
Debugging | --without-debug | -DWITH_DEBUG=0 | default is debugging disabled |
GIS support | --with-geometry | none | always enabled? |
Community features | --enable-community-features | none | always enabled |
Profiling | --disable-profiling | -DENABLE_PROFILING=0 | enabled by default |
pstack | --without-pstack | none | pstack is removed |
Assembler string functions | --enable-assembler | none | |
Build type | --build=x86_64-pc-linux-gnu | no equivalent | unneeded? |
Cross-compile host | --host=x86_64-pc-linux-gnu | no equivalent | unneeded? |
Client flag | --with-client-ldflags=-lstdc++ | none | unneeded |
Client flag | --enable-thread-safe-client | none | unneeded, clients are always thread safe |
Comment | --with-comment='string' | -DWITH_COMMENT='string' | |
Shared/static binaries | --enable-shared --enable-static | none | there is only DISABLE_SHARED |
Memory use | --with-low-memory | none | unneeded |
1. 命令语法: 重新编译时,需要清除旧的对象文件和缓存信息 # make clean # rm -f CMakeCache.txt 2.安装选项 CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括 CMAKE_INSTALL_PREFIX路径。如-DINSTALL_SBINDIR=sbin的绝对路径是/usr/local/mysql /sbin 3.存储引擎选项 mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。 configure编译插件选项--with-plugins=csv,myisam,myisammrg,heap,innobase, archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。 可以使用以下选择来安装innodb,archive,blackhole存储引擎 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 (1可以使用on代替) 如果既不是-DWITH_<ENGINE>_STORAGE_ENGINE 也不是 -DWITHOUT_<ENGINE>_STORAGE_ENGINE 来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或--plugin-load才可以使用。 4.其他选项 之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如: --with-debug => WITH_DEBUG=1 --with-embedded-server => WITH_EMBEDDED_SERVER 5.调试配置过程 使用configure编译完将生成config.log和config.status文件。 使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。 编译参数参考: BUILD_CONFIG 采用官方发行版一致的编译参数 CMAKE_BUILD_TYPE 指定产品编译说明信息 RelWithDebInf CMAKE_INSTALL_PREFIX 指定MySQL安装路径 /usr/local/mysql CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF 5.5.7 DEFAULT_CHARSET MYSQL 默认字符集 latin1 5.5.7 DEFAULT_COLLATION MYSQL 默认排序字符集 latin1_swedish_ci 5.5.7 ENABLE_DEBUG_SYNC 是否启用同步调试功能 ON 5.5.7 ENABLE_DOWNLOADS 是否下载可选文件 OFF 5.5.7 ENABLE_DTRACE 是否包含 DTrace 支持 5.5.7 ENABLE_GCOV 是否包含 Gcov 支持 5.5.14 ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF 5.5.7 ENABLED_PROFILING 是否启用代码查询分析 ON 5.5.7 INSTALL_BINDIR MySQL 主执行文件目录 PREFIX/bin 5.5.7 INSTALL_DOCDIR 文档安装路径 PREFIX/docs 5.5.7 INSTALL_DOCREADMEDIR 自述文件目录 PREFIX 5.5.7 INSTALL_INCLUDEDIR 头文件目录 PREFIX/include 5.5.7 INSTALL_INFODIR 关于信息文件目录 PREFIX/docs 5.5.7 INSTALL_LAYOUT 选择预定义的安装 STANDALONE 5.5.7 INSTALL_LIBDIR 库文件目录 PREFIX/lib 5.5.7 INSTALL_MANDIR 手册页面目录 PREFIX/man 5.5.7 INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share 5.5.7 INSTALL_MYSQLTESTDIR mysql-test 目录 PREFIX/mysql-test 5.5.7 INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin 5.5.7 INSTALL_SBINDIR 服务器超级用户执行文件目录 PREFIX/bin 5.5.7 INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts 5.5.7 INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share 5.5.7 INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX 5.5.7 INSTALL_SUPPORTFILESDIR 扩展支持文件目录 PREFIX/support-files 5.5.7 MYSQL_DATADIR 数据库存放目录 5.5.7 MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境 OFF 5.5.7 MYSQL_TCP_PORT TCP/IP 端口号 3306 5.5.7 MYSQL_UNIX_ADDR Unix Socket 套接字文件 /tmp/mysql.sock 5.5.7 SYSCONFDIR 选项配置文件目录 5.5.7 WITH_COMMENT 编译环境发表评论 5.5.7 WITH_DEBUG 是否包括调试支持 OFF 5.5.7 WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器 OFF 5.5.7 WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器 5.5.7 WITH_EXTRA_CHARSETS 额外的字符集,包括 all 5.5.7 WITH_LIBWRAP 是否包括支持libwrap(TCP包装) OFF 5.5.7 WITH_READLINE 使用捆绑的readline OFF 5.5.7 WITH_SSL 是否支持SSL no 5.5.7 WITH_ZLIB 是否支持Zlib system 5.5.7
WITHOUT_XXX_STORAGE_ENGINE 不编译XXX存储引擎到数据库