Linux 下MySQL 5.6.12原始碼安裝完整版

luashin發表於2016-01-08

      在Linux中安裝MySQL,通常為RPM與原始碼方式安裝。對於生產環境而言,由於需要自定義諸如安裝路徑、資料檔案位置、字符集以及支援的儲存引擎等多以原始碼方式來進行安裝。之前有寫過一篇關於原始碼安裝的文章,Linux下基於原始碼方式安裝MySQL 5.6()但不是很完整,因此該文可以作為其補充。以下為具體安裝步驟,供大家參考。 

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

本次安裝環境
  [root@SZ-RD03 ~]# cat /etc/issue
  release 5.9 (Final)
  Kernel \r on an \m
 
  [root@SZ-RD03 ~]# uname -a
  Linux SZ-RD03 2.6.18-348.el5 #1 SMP Tue Jan 8 17:53:53 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
 
  MySQL版本:5.6.12-log Source distribution
  安裝目錄為:/usr/local/mysql
  資料目錄為:/data/mysqldata
  儲存引擎包括:MEMORY,MyISAM,InnoDB等
  字符集為:UTF8
 

2、原始碼安裝MySQL
先安裝需要用到的庫:
  yum -y install gcc gcc-c++ ncurses-devel

下載所需軟體包:
  #將下載的檔案都放到/usr/local/src目錄下,如下
  # cd /usr/local/src
  # wget
  # wget
  # wget
  # wget

安裝cmake編譯器
  # cd /usr/local/src
  # tar -zxvf cmake-2.8.11.1.tar.gz
  # cd cmake-2.8.11.1
  # ./bootstrap
  # make && make install

安裝m4
  # cd /usr/local/src
  # tar -zxvf m4-1.4.16.tar.gz
  # cd m4-1.4.16
  # ./configure && make && make install

安裝bison
  # cd /usr/local/src
  # tar -zxvf 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 /usr/local/mysql
  # chown -R mysql:mysql /usr/local/mysql
  # mkdir -p /data/mysqldata
  # chown -R mysql:mysql /data/mysqldata/

安裝mysql
  # cd /usr/local/src
  # tar -zxvf 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=/usr/local/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=/usr/local/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 /usr/local/mysql/
  # ./scripts/mysql_install_db --user=mysql --ldata=/data/mysqldata
 

3、安裝後的收尾工作
配置執行環境
  # vim /etc/profile
  # export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
  # source /etc/profile

建立開機啟動
  # cp support-files/my-default.cnf /etc/my.cnf  #也可以將my.cnf直接複製到安裝檔案位置
  # cp support-files/mysql.server /etc/init.d/mysqld
  # chkconfig --level 35 mysqld on
  # service mysqld start


查檢是否啟動成功
  netstat -ntlp  | grep mysql

設定root密碼
  # mysqladmin -u root password 'xxx'

登陸賬號
  # mysql -uroot -pxxx

配置引數
  根據系統及業務需求配置my.cnf檔案

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-1973627/,如需轉載,請註明出處,否則將追究法律責任。

相關文章