我是靠谱客的博主 欣慰故事,最近开发中收集的这篇文章主要介绍mysql-5.5源码编译安装(附参数对照表),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自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 CommandCMake Command
./configurecmake .
./configure --helpcmake . -LH or ccmake .

Parameterconfigure OptionCMake OptionCMake Notes
Installation base directory--prefix=/usr-DCMAKE_INSTALL_PREFIX=/usr 
mysqld directory--libexecdir=/usr/sbin-DINSTALL_SBINDIR=sbininterpreted 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/plugininterpreted relative to prefix
Man page directory--mandir=/usr/share/man-DINSTALL_MANDIR=share/maninterpreted relative to prefix
Shared-data directory--sharedstatedir=/usr/share/mysql-DINSTALL_SHAREDIR=sharethis is where aclocal/mysql.m4 should be installed
Library installation directory--libdir=/usr/lib64/mysql-DINSTALL_LIBDIR=lib64/mysqlinterpreted relative to prefix
Header installation directory--includedir=/usr/include/mysql-DINSTALL_INCLUDEDIR=include/mysqlinterpreted relative to prefix
Info doc directory--infodir=/usr/share/info-DINSTALL_INFODIR=share/infointerpreted relative to prefix

Parameterconfigure OptionCMake OptionCMake 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 

Parameterconfigure OptionCMake OptionCMake 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=alldefault 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-servernone
Build the embedded server--with-embedded-server-DWITH_EMBEDDED_SERVER=1
libmysqld privilege control--with-embedded-privilege-controlnonealways enabled?
Install the documentation--without-docsnone
Big tables--with-big-tables, --without-big-tablesnonetables are big by default
mysqld user--with-mysqld-user=mysql-DMYSQL_USER=mysqlmysql is the default
Debugging--without-debug-DWITH_DEBUG=0default is debugging disabled
GIS support--with-geometrynonealways enabled?
Community features--enable-community-featuresnonealways enabled
Profiling--disable-profiling-DENABLE_PROFILING=0enabled by default
pstack--without-pstacknonepstack is removed
Assembler string functions--enable-assemblernone
Build type--build=x86_64-pc-linux-gnuno equivalentunneeded?
Cross-compile host--host=x86_64-pc-linux-gnuno equivalentunneeded?
Client flag--with-client-ldflags=-lstdc++noneunneeded
Client flag--enable-thread-safe-clientnoneunneeded, clients are always thread safe
Comment--with-comment='string'-DWITH_COMMENT='string'
Shared/static binaries--enable-shared --enable-staticnonethere is only DISABLE_SHARED
Memory use--with-low-memorynoneunneeded

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存储引擎到数据库


最后

以上就是欣慰故事为你收集整理的mysql-5.5源码编译安装(附参数对照表)的全部内容,希望文章能够帮你解决mysql-5.5源码编译安装(附参数对照表)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部