2013年3月29日 星期五

MySql5.5 CMake 安裝教學

因為最近都忙於寫程式
很少碰系統,剛好最近比較有時間就來重新摸索一下系統

在這一兩年來我幾乎都是使用 Oracle Database
所以對於 MySql 有點生疏了

這兩天研究了一下才發現編譯方式有些改變

教學如下 : 

1. 因 MySql 5.5 以上所使用的編譯方式已不是使用以前的 "./configure
    而是使用新的 "CMake"

    請到 MySql 官網下載 5.5 以上版本的 Source Code
    #wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql5.5.30.tar.gz/from/http://cdn.mysql.com/

2. 先用 yum 安裝所需軟體
    #yum -y install gcc gcc-c++ ncurses-devel make cmake bison openssl 
openssl-devel

3. 複製到 opt 並解壓縮
    #cp mysql5.5.30.tar.gz /opt
    #tar zxvf /opt/mysql5.5.30.tar.gz

4. 建立使用者群組
    # groupadd mysql
    # useradd -s /sbin/nologin -g mysql mysql 

5. 切換到 MySql 目錄並使用 "CMake"
    # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
       -DSYSCONFDIR=/usr/local/mysql/ \
       -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
       -DMYSQL_DATADIR=/usr/local/mysql/data/ \
       -DEXTRA_CHARSETS=all \
       -DDEFAULT_CHARSET=utf8 \
       -DDEFAULT_COLLATION=utf8_general_ci \
       -DWITH_MYISAM_STORAGE_ENGINE=1 \
   -DWITH_INNOBASE_STORAGE_ENGINE=1 \
       -DWITH_EMBEDDED_SERVER=OFF \
       -DWITH_READLINE=1 \
       -DWITH_DEBUG=OFF \
       -DWITH_CLIENT_LDFLAGS=-ALL-STATIC \
       -DWITH_MYSQLD_LDFLAGS=-ALL-STATIC \
       -DWITH_SSL=yes \
       -DMYSQL_TCP_PORT=3306 \
    -DMYSQL_USER=mysql

    參數說明:
       -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/          <== 安裝目的地
       -DSYSCONFDIR=/usr/local/mysql/                                 <== my.cnf 位置
       -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock     <== sock 產生位置 
       -DMYSQL_DATADIR=/usr/local/mysql/data/                  <== data 存放位置
       -DEXTRA_CHARSETS=all                                             <== 安裝所有擴展字符集
       -DDEFAULT_CHARSET=utf8                                        <== 預設字元為 utf8
       -DDEFAULT_COLLATION=utf8_general_ci                  <== 校驗字符,須與上面相符
       -DWITH_MYISAM_STORAGE_ENGINE=1                 <== 安裝 myisam 儲存引擎
   -DWITH_INNOBASE_STORAGE_ENGINE=1             <== 安裝 innodb 儲存引擎
       -DWITH_EMBEDDED_SERVER=OFF                          <== 编譯成 embedded mysql library
       -DWITH_READLINE=1                                                  <== 快捷键功能
       -DWITH_DEBUG=OFF                                                   <== DEBUG 功能
       -DWITH_CLIENT_LDFLAGS=-ALL-STATIC              <== 靜態編譯 MySQL 服務器端
       -DWITH_MYSQLD_LDFLAGS=-ALL-STATIC           <== 靜態編譯 MySQL 客戶端
       -DWITH_SSL=yes \                                                         <== 支援 SSL 功能
       -DMYSQL_TCP_PORT=3306                                        <== 預設監聽 port 
       -DMYSQL_USER=mysql                                                 <== 預設使用者

  備註:
      1. 使用 cmake -LH or ccmake 可以查詢編譯的參數設定
      2. 如果編譯失敗可以照以下步驟重新編譯
          #make clean
          #rm ./CMakeCache.txt

6. 使用 make 安裝
     #make
     #make install

7. 切換到 mysql 目錄並複製設定檔
    #cd /usr/local/mysql
    #cp ./support-files/my-medium.cnf my.cnf

8. 編輯設定檔
    #vi my.cnf
      最下面加入以下內容
      basedir=/usr/local/mysql5.5
      datadir=/usr/loca/data
      skip-name-resolve
9. 數據庫初始化
    #./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

10. 建立 sock 目錄並更改權限
     #mkdir /var/run/mysql
     #chown -R mysql.mysql /usr/local/mysql /var/run/mysql

11. 建立開機啟動檔
     #cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
     #chmod +x /etc/init.d/mysqld
     #chkconfig add mysqld

12. 啟動 mysql 
      #service mysqld start

13. 更改 root 密碼
      #/usr/local/mysql/bin/mysqladmin -u root password 'XXXX'