自5.5之後的版本都須要cmake編譯安裝,so...先安裝cmake編譯器 mysql
- 安裝必要的組件
- 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數據庫,如下兩步無需執行。
-
- 一、以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
-
- 二、加入開機自啓動;並啓動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 與之前的參數對照: linux
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存儲引擎到數據庫
- <pre class="programlisting" style="margin-top: 0px; margin-bottom: 0px; padding: 2px; border: 0px; outline: 0px; font-size: 13px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: 'Courier New', Courier, fixed, monospace; max-width: 720px; line-height: 20px;" name="code">
- </pre>
- <pre></pre>