在Linux中安裝MySQL,通常爲RPM與源碼方式安裝。對於生產環境而言,由於需要自定義諸如安裝路徑、數據文件位置、字符集以及支持的存儲引擎等多以源碼方式來進行安裝。
1、安裝前的有關描述
必備的包和工具
gcc/g++ :MySQL 5.6開始,需要使用g++進行編譯。
cmake :MySQL 5.5開始,使用cmake進行工程管理,cmake需要2.8以上版本。
bison :MySQL語法解析器需要使用bison進行編譯。
ncurses-devel :用於終端操作的開發包。
zlib :MySQL使用zlib進行壓縮
功能需要的包
libxml :用於XML輸入輸出方式的支持。
openssl:使用openssl安全套接字方式通信。
dtrace:用於診斷MySQL問題。
以下摘抄:有關MySQL編譯參數
CMAKE_BUILD_TYPE 編譯的版本類型:RelWithDebInfo和Debug,不同之處是RelWithDebInfo會進行優化。
CMAKE_INSTALL_PREFIX 指定make install安裝的目標路徑。
SYSCONFDIR 指定配置文件的默認路徑。
MYSQL_DATADIR 指定data目錄的默認路徑。
WITH_DEBUG 指定是否有debugging信息,一般用於源碼調試時,打開WITH_DEBUG,生產環境關閉。
ENABLED_PROFILING 指定是否可以使用show profile顯示操作執行的詳細信息。
DEFAULT_CHARSET 指定默認字符集,可以在啓動的配置文件中指定。
DEFAULT_COLLATION 指定默認字符比較、排序的規則。
WITH_EXTRA_CHARSETS 指定其他可能使用的字符集。
WITH_SSL 指定SSL的類型,從5.6.6開始默認bundled類型,此外也可以指定SSL庫的路徑地址。
WITH_ZLIB 指定zlib的類型,用於壓縮功能。
ENABLED_LOCAL_INFILE 指定是否允許使用load data infile功能。
WITH_EMBEDDED_SERVER 指定是否編譯libmysqld嵌入式庫。
INSTALL_LAYOUT 指定安裝的佈局類型。
WITH_storage_STORAGE_ENGINE 指定編譯支持的存儲引擎,默認支持MyISAM,MERGE,MEMORY,CSV存儲引擎。
更多詳細參數可參考 http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
安裝目錄爲:/app/soft/mysql/
數據目錄爲:/data/mysqldata
存儲引擎包括:MEMORY,MyISAM,InnoDB等
字符集爲:UTF8
2、源碼安裝MySQL
先安裝需要用到的庫:
yum -y install gcc gcc-c++
yum -y install ncurses-devel
下載所需軟件包(有可能已經改變):
#將下載的文件都放到/usr/local/src目錄下,如下
# cd /usr/local/src
# wget http://www.cmake.org/files/v2.8/cmake-2.8.11.1.tar.gz
# wget http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz
# wget http://www.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.12.tar.gz/from/http://cdn.mysql.com/
安裝cmake編譯器
# cd /usr/local/src
# tar -xvf cmake-2.8.11.1.tar.gz
# cd cmake-2.8.11.1
# ./bootstrap
# make && make install
安裝m4
# cd /usr/local/src
# tar -xvf m4-1.4.16.tar.gz
# cd m4-1.4.16
# ./configure && make && make install
安裝bison
# cd /usr/local/src
# tar -xvf bison-2.7.tar.gz
# cd bison-2.7
# ./configure && make && make install
創建mysql用戶與組,相關目錄
# /usr/sbin/groupadd mysql
# /usr/sbin/useradd -g mysql mysql
# mkdir -p /app/soft/mysql
# chown -R mysql:mysql /app/soft/mysql
# mkdir -p /data/mysqldata
# chown -R mysql:mysql /data/mysqldata/
安裝mysql
# cd /usr/local/src
# tar -xvf mysql-5.6.12.tar.gz
# export CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
# export CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
# export CXX=g++
# cd mysql-5.6.12
# cmake -DCMAKE_INSTALL_PREFIX=/app/soft/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=utf8,gbk
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldata/ -DSYSCONFDIR=/app/soft/mysql/
-DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1
# make && make install
初始化數據庫
# cd /app/soft/mysql/
# ./scripts/mysql_install_db --user=mysql --ldata=/data/mysqldata
3、安裝後的收尾工作
配置運行環境
# vi /etc/profile
# PATH=/app/soft/mysql/bin:/app/soft/mysql/lib:$PATH
# export PATH
# source /etc/profile
創建開機啓動
# cp support-files/my-default.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --level 35 mysqld on
# service mysqld start