MySQL 5.6.14

コンパイル

#------------------------------------------------------------
# mysql 5.6.14
#------------------------------------------------------------
############################################################
# OSによってパターンが変わります
############################################################
# 管理者権限で実行
su - # case by CentOS
sudo su # case by ubuntu

############################################################
# 以降の手順は基本的に同じです。
############################################################
# ソースダウンロード先
comp_dir=/usr/local/src
# パッケージ名
pack_name=mysql
# バージョン
version=-5.6.14
# ソースのファイル形式
ext=.tar.gz
# tar解凍時のオプション
ext_opt=z
# インストール先ディレクトリ
ins_dir=/opt/${pack_name}${version}
# ダウンロード元パッケージ
dl_uri='http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz/from/http://cdn.mysql.com/'
# CPU数
proc=`grep processor /proc/cpuinfo | wc -l`

cd ${comp_dir}
rm -rf ${pack_name}${version}
# すでに必要なソースが用意されている場合は必要ありません。
wget ${dl_uri} -O ${pack_name}${version}${ext}
tar ${ext_opt}xf ${pack_name}${version}${ext}
cd ${comp_dir}/${pack_name}${version}
cmake . \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DCMAKE_INSTALL_PREFIX=${ins_dir} \
-DWITH_EXTRA_CHARSETS="complex" \
-DMYSQL_UNIX_ADDR=${ins_dir}/data/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DCURSES_LIBRARY=/opt/ncurses-5.9/lib/libncurses.so \
-DCURSES_INCLUDE_PATH=/opt/ncurses-5.9/include/ \
&& make -j ${proc}
make install

Pathの設定

test -r ~/bin || mkdir -p ~/bin
for cmd in /opt/${pack_name}${version}/*bin/*
do
  cmd_name=`basename $cmd`
  test -f ~/bin/$cmd_name && \rm -f ~/bin/$cmd_name
  ln -s $cmd ~/bin/$cmd_name
  echo "ln -s $cmd ~/bin/$cmd_name"
done

ユーザの作成

MySQLを動作させるためのユーザを作成します。
セキュリティのため、DBは基本的にrootで設定しません。
ここではよく使われる mysql ユーザをシステムユーザとして作成します。
useradd -r mysql

ディレクトリの作成

install時点でほとんどのディレクトリは作成されますし、設定ファイル次第で必要ありませんが、RPMに近いディレクトリ構造を再現します。
namedのchroot環境を想定すると運用しやすいです。
# ディレクトリの移動
cd ${ins_dir}
# 必須ディレクトリの作成
mkdir -p ./var/{tmp,lib,log}
mkdir -p ./var/lib/mysql/data
mkdir ./etc

設定ファイルの編集

通常とはだいぶ異なる運用を想定していますので設定ファイルの編集が必須になってきます。
# 設定ファイル作成
cp ./support-files/my-default.cnf ./etc/my.cnf
# 設定ファイル編集
vim ./etc/my.cnf

my.cnf 編集内容

警告

ここでは変数が使えませんのでPATHは適宜設定してください

--- ./support-files/my-default.cnf      2013-11-06 01:47:20.000000000 +0900
+++ ./etc/my.cnf        2013-11-06 04:03:04.480093211 +0900
@@ -15,11 +15,14 @@
 # log_bin

 # These are commonly set, remove the # and set as required.
-# basedir = .....
-# datadir = .....
-# port = .....
-# server_id = .....
-# socket = .....
+user = mysql
+basedir   = /opt/mysql-5.6.14
+datadir   = /opt/mysql-5.6.14/var/lib/mysql/data
+port      = 3306
+server_id = 1
+socket    = /opt/mysql-5.6.14/var/tmp/mysqld.sock
+log-error = /opt/mysql-5.6.14/var/log/mysqld.err
+pid-file  = /opt/mysql-5.6.14/var/tmp/mysqld.pid

 # Remove leading # to set options mainly useful for reporting servers.
 # The server defaults are faster for transactions and fast SELECTs.

パーミッションの設定

# 権限変更
chown -R mysql.mysql ${ins_dir}

初期DBの構築

# 初期DBの作成
${ins_dir}/scripts/mysql_install_db --defaults-file=/opt/mysql-5.6.14/etc/my.cnf

起動

${ins_dir}/bin/mysqld_safe --defaults-file=/opt/mysql-5.6.14/etc/my.cnf &

停止

cat ${ins_dir}/var/tmp/mysqld.pid | xargs kill -TERM