mysql-5.5源码编译安装(附参数对照表)

分类: mysql 1494人阅读 评论(0) 收藏 举报

mysql

自5.5以后的版本都需要cmake编译安装,so...先安装cmake编译器


[plain] view plaincopyprint?

  1. 安装必要的组件  

  2. yum -y install cmake  

  3. yum -y install bison  

  4. yum -y install ncurses-devel  

  5.    

  6. 添加账户  

  7. groupadd mysql  

  8. useradd mysql -g mysql -M -s /bin/false  

  9.    

  10. 编译安装  

  11. tar zxvf mysql-5.5.24.tar.gz  

  12. cd mysql-5.5.24  

  13. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  

  14. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  

  15. -DMYSQL_USER=mysql \  

  16. -DEXTRA_CHARSETS=all \  

  17. -DDEFAULT_CHARSET=utf8 \  

  18. -DDEFAULT_COLLATION=utf8_general_ci \  

  19. -DWITH_MYISAM_STORAGE_ENGINE=1 \  

  20. -DWITH_INNOBASE_STORAGE_ENGINE=1 \  

  21. -DWITH_DEBUG=0 \  

  22. -DWITH_READLINE=1 \  

  23. -DWITH_EMBEDDED_SERVER=1 \  

  24. -DENABLED_LOCAL_INFILE=1   

  25.    

  26. make -j 2 && make install  

  27. 注:-j 用来指定CPU核心数,可加快编译速度,不加也可以  

  28.    

  29. 以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。  

  30. 如果只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,以下两步无需执行。  

  31.    

  32. 1、以mysql用户帐号的身份建立数据表:  

  33. chown -R mysql.mysql /usr/local/mysql  

  34. cp support-files/my-large.cnf /etc/my.cnf  

  35. /usr/local/mysql/scripts/mysql_install_db \  

  36. --defaults-file=/etc/my.cnf \  

  37. --basedir=/usr/local/mysql \  

  38. --datadir=/usr/local/mysql/data/ \  

  39. --user=mysql  

  40.    

  41. 2、加入开机自启动;并启动mysql  

  42. cp support-files/mysql.server /etc/rc.d/init.d/mysqld  

  43. chmod 755 /etc/rc.d/init.d/mysqld  

  44. chkconfig --add mysqld  

  45. chkconfig --level 35 mysqld on  

  46. 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



[plain] view plaincopyprint?

  1. 1. 命令语法:  

  2.   

  3. 重新编译时,需要清除旧的对象文件和缓存信息  

  4. # make clean  

  5. # rm -f  CMakeCache.txt  

  6.   

  7. 2.安装选项  

  8.   

  9. CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括 CMAKE_INSTALL_PREFIX路径。如-DINSTALL_SBINDIR=sbin的绝对路径是/usr/local/mysql /sbin  

  10.   

  11. 3.存储引擎选项  

  12. mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。  

  13. configure编译插件选项--with-plugins=csv,myisam,myisammrg,heap,innobase,  

  14. archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。  

  15.   

  16. 可以使用以下选择来安装innodb,archive,blackhole存储引擎  

  17. -DWITH_INNOBASE_STORAGE_ENGINE=1  

  18.   

  19. -DWITH_ARCHIVE_STORAGE_ENGINE=1  

  20.   

  21. -DWITH_BLACKHOLE_STORAGE_ENGINE=1  

  22.   

  23. (1可以使用on代替)  

  24.   

  25. 如果既不是-DWITH__STORAGE_ENGINE 也不是 -DWITHOUT__STORAGE_ENGINE 来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或--plugin-load才可以使用。  

  26.   

  27. 4.其他选项  

  28. 之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:  

  29. --with-debug => WITH_DEBUG=1  

  30.   

  31. --with-embedded-server => WITH_EMBEDDED_SERVER  

  32.   

  33. 5.调试配置过程  

  34. 使用configure编译完将生成config.log和config.status文件。  

  35. 使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。  

  36.   

  37. 编译参数参考:  

  38.   

  39. BUILD_CONFIG   采用官方发行版一致的编译参数  

  40. CMAKE_BUILD_TYPE 指定产品编译说明信息   RelWithDebInf  

  41. CMAKE_INSTALL_PREFIX 指定MySQL安装路径  /usr/local/mysql  

  42. CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF   5.5.7  

  43. DEFAULT_CHARSET  MYSQL 默认字符集  latin1   5.5.7  

  44. DEFAULT_COLLATION MYSQL 默认排序字符集  latin1_swedish_ci 5.5.7  

  45. ENABLE_DEBUG_SYNC 是否启用同步调试功能  ON   5.5.7  

  46. ENABLE_DOWNLOADS 是否下载可选文件  OFF   5.5.7  

  47. ENABLE_DTRACE  是否包含 DTrace 支持     5.5.7  

  48. ENABLE_GCOV  是否包含 Gcov 支持     5.5.14  

  49. ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF   5.5.7  

  50. ENABLED_PROFILING 是否启用代码查询分析  ON   5.5.7  

  51. INSTALL_BINDIR  MySQL 主执行文件目录  PREFIX/bin  5.5.7  

  52. INSTALL_DOCDIR  文档安装路径   PREFIX/docs  5.5.7  

  53. INSTALL_DOCREADMEDIR 自述文件目录   PREFIX   5.5.7  

  54. INSTALL_INCLUDEDIR 头文件目录   PREFIX/include  5.5.7  

  55. INSTALL_INFODIR  关于信息文件目录  PREFIX/docs  5.5.7  

  56. INSTALL_LAYOUT  选择预定义的安装  STANDALONE  5.5.7  

  57. INSTALL_LIBDIR  库文件目录   PREFIX/lib  5.5.7  

  58. INSTALL_MANDIR  手册页面目录   PREFIX/man  5.5.7  

  59. INSTALL_MYSQLSHAREDIR 共享数据目录   PREFIX/share  5.5.7  

  60. INSTALL_MYSQLTESTDIR mysql-test 目录   PREFIX/mysql-test 5.5.7  

  61. INSTALL_PLUGINDIR 插件目录   PREFIX/lib/plugin 5.5.7  

  62. INSTALL_SBINDIR  服务器超级用户执行文件目录 PREFIX/bin  5.5.7  

  63. INSTALL_SCRIPTDIR 脚本目录   PREFIX/scripts  5.5.7  

  64. INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share  5.5.7  

  65. INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX   5.5.7  

  66. INSTALL_SUPPORTFILESDIR 扩展支持文件目录  PREFIX/support-files 5.5.7  

  67. MYSQL_DATADIR  数据库存放目录      5.5.7  

  68. MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境  OFF   5.5.7  

  69. MYSQL_TCP_PORT  TCP/IP 端口号   3306   5.5.7  

  70. MYSQL_UNIX_ADDR  Unix Socket 套接字文件  /tmp/mysql.sock  5.5.7  

  71. SYSCONFDIR  选项配置文件目录     5.5.7  

  72. WITH_COMMENT  编译环境发表评论     5.5.7  

  73. WITH_DEBUG  是否包括调试支持  OFF   5.5.7  

  74. WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器  OFF   5.5.7  

  75. WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器    5.5.7  

  76. WITH_EXTRA_CHARSETS 额外的字符集,包括  all   5.5.7  

  77. WITH_LIBWRAP  是否包括支持libwrap(TCP包装) OFF   5.5.7  

  78. WITH_READLINE  使用捆绑的readline  OFF   5.5.7  

  79. WITH_SSL  是否支持SSL  no   5.5.7  

  80. WITH_ZLIB  是否支持Zlib  system   5.5.7  

[plain] view plaincopyprint?

  1. WITHOUT_XXX_STORAGE_ENGINE 不编译XXX存储引擎到数据库