mysql 5.5以上編譯安裝 mysql 5.5 以上的版本 社區版采用的是cmake 編譯安裝,不再采用之前gnu autotools 工具的 ./configure make make install安裝了。 1. 系統環境 無論是centos還是debian ,都需要安裝一些基礎軟件,例如gcc等: gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* yum -y install apt-get install 2.安裝 1 下載軟件 wget http://www.cmake.org/files/v2.8/cmake-2.8.10.tar.gz wget http://gd.tuwien.ac.at/db/mysql/Downloads/MySQL-5.6/mysql-5.6.12.tar.gz 准備 1 cd /usr/local 2 mkdir mysql 3 cd mysql 4 mkdir data 5 groupadd mysql 6 useradd –r –g mysql mysql 7 mkdir /usr/local/mysql/data (數據文件夾) 8 chown –R mysql.mysql /usr/local/mysql/data 2 安裝 cmake 的編譯參數通過這裡查看 01 tar xzvf cmake-2.8.10.tar.gz 02 cd cmake-2.8.10 03 ./bootstrap 04 make 05 make install 06 cd mysql-5.6.12 07 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 08 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ 09 -DDEFAULT_CHARSET=utf8 \ 10 -DDEFAULT_COLLATION=utf8_general_ci \ 11 -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ 12 -DWITH_INNOBASE_STORAGE_ENGINE=1\ 13 -DWITH_ARCHIVE_STORAGE_ENGINE=1\ 14 -DWITH_BLACKHOLE_STORAGE_ENGINE=1\ 15 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1\ 16 -DWITH_READLINE=yes \ 17 -DENABLED_LOCAL_INFILE=1 \ 18 -DMYSQL_DATADIR=/usr/local/mysql/data \ 19 -DMYSQL_TCP_PORT=3306 1 make 2 make install 3. 更改文件夾權限和初始化數據庫 1 cd /usr/local/mysql 2 chown –R mysql . 3 chgrp –R mysql . 復制配置文件,啟動 01 cp support-files/my-medium.cnf /etc/my.cnf 02 #初始化 table 03 chmod 755 scripts/mysql_install_db 04 scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ #此處指定用user用戶運行 05 chown –R root . 06 chown –R mysql data 07 08 nohup ./bin/mysqld_safe --defaults-file=/etc/my.cnf & #後台運行 09 #開機啟動 10 cp support-files/mysql.server /etc/init.d/mysql.server # 系統服務 1 chkconfig --add mysql.server #開機啟動 這裡啟動的時候會報一警告: [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 請在 my.cnf 文件裡配置 explicit_defaults_for_timestamp=true 後記: 1.mysql 編譯時參數 autotools 和 CMAKE 的一些對比 斜體是較常用的(以下內容摘自mysql官方網站)http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide 參數 configure 選項 CMake 選項 CMake 說明 主安裝目錄 --prefix=/usr -DCMAKE_INSTALL_PREFIX=/usr mysqld 目錄 --libexecdir=/usr/sbin -DINSTALL_SBINDIR=sbin 該目錄相對--prefix,相當於/usr/sbin,不要加前綴(以下標“同上”的一樣) 數據目錄 --localstatedir=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql 配置文件my.cnf 目錄 --sysconfdir=/etc/mysql -DSYSCONFDIR=/etc/mysql 插件目錄 --with-plugindir=/usr/lib64/mysql/plugin -DINSTALL_PLUGINDIR=lib64/mysql/plugin 同上 Man page 目錄 --mandir=/usr/share/man -DINSTALL_MANDIR=share/mysql 同上 共享數據目錄 --sharedstatedir=/usr/share/mysql -DINSTALL_SHAREDIR=share aclocal/mysql.m4 安裝目錄 庫安裝目錄 --libdir=/usr/lib64/mysql -DINSTALL_LIBDIR=lib64/mysql 同上 Header 安裝目錄 --includedir=/usr/include/mysql -DINSTALL_INCLUDEDIR=include/mysql 同上 信息文檔目錄 --infodir=/usr/share/info -DINSTALL_INFODIR=share/info 同上 存儲引擎也是做為插件安裝的,configure 方式接受 --with-plugins 參數指定參數方式以逗號分隔或組名形式安裝插件,但在 CMake 中各存儲引擎是以參數形式單獨配置的,以下幾個較常用: -DWITH_INNOBASE_STORAGE_ENGINE=1 INNODB 引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 ARCHIVE 引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 BLACKHOLE 引擎 常用的cmake參數(不同MySQL版本可能有一些差異,請參考官方文檔) -DCMAKE_INSTALL_PREFIX= 指向mysql安裝目錄 -DINSTALL_SBINDIR=sbin 指向可執行文件目錄(prefix/sbin) -DMYSQL_DATADIR=/var/lib/mysql 指向mysql數據文件目錄(/var/lib/mysql) -DSYSCONFDIR=/etc/mysql 指向mysql配置文件目錄(/etc/mysql) -DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目錄(prefix/lib/mysql/plugin) -DINSTALL_MANDIR=share/man 指向man文檔目錄(prefix/share/man) -DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安裝目錄(prefix/share) -DINSTALL_LIBDIR=lib/mysql 指向對象代碼庫目錄(prefix/lib/mysql) -DINSTALL_INCLUDEDIR=include/mysql 指向頭文件目錄(prefix/include/mysql) -DINSTALL_INFODIR=share/info 指向info文檔存放目錄(prefix/share/info) prefix官方推薦設為/usr Storage Engine相關 類型csv,myisam,myisammrg,heap,innobase,archive,blackhole 若想啟用某個引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1 如: -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 若想禁用某個引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 如: -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 Library相關 -DWITH_READLINE=1 啟用readline庫支持(提供可編輯的命令行) -DWITH_SSL=system 啟用ssl庫支持(安全套接層) -DWITH_ZLIB=system 啟用libz庫支持(zib、gzib相關) -DWTIH_LIBWRAP=0 禁用libwrap庫(實現了通用TCP包裝的功能,為網絡服務守護進程使用) -DMYSQL_TCP_PORT=3306 指定TCP端口為3306 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路徑 -DENABLED_LOCAL_INFILE=1 啟用本地數據導入支持 -DEXTRA_CHARSETS=all 啟用額外的字符集類型(默認為all) -DDEFAULT_CHARSET=utf8 指定默認的字符集為utf8 -DDEFAULT_COLLATION=utf8_general_ci 設定默認排序規則(utf8_general_ci快速/utf8_unicode_ci准確) -DWITH_EMBEDDED_SERVER=1 編譯嵌入式服務器支持 -DMYSQL_USER=mysql 指定mysql用戶(默認為mysql) -DWITH_DEBUG=0 禁用debug(默認為禁用) -DENABLE_PROFILING=0 禁用Profiling分析(默認為開啟) 2. mysql 編譯時出現錯誤及解決方案 錯誤1:Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) 1. centos 下執行:yum -y install ncurses-devel ubuntu 下執行:apt-get install libncurses5 libncurses5-dev 2. 刪除 CMakeCache.txt,重新運行cmake