.. index:: MySQL_5.6.14 MySQL 5.6.14 ============= .. contents:: Contents =========== 実行環境 =========== :ref:`centos_6.3` =========== 依存関係 =========== * :doc:`../../library/cmake/index` * :doc:`../../library/ncurses/index` =========== コンパイル =========== .. code-block:: bash #------------------------------------------------------------ # 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の設定 ================ .. code-block:: bash 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`` ユーザをシステムユーザとして作成します。 .. code-block:: bash useradd -r mysql =================== ディレクトリの作成 =================== | install時点でほとんどのディレクトリは作成されますし、設定ファイル次第で必要ありませんが、RPMに近いディレクトリ構造を再現します。 | namedのchroot環境を想定すると運用しやすいです。 .. code-block:: bash # ディレクトリの移動 cd ${ins_dir} # 必須ディレクトリの作成 mkdir -p ./var/{tmp,lib,log} mkdir -p ./var/lib/mysql/data mkdir ./etc =================== 設定ファイルの編集 =================== | 通常とはだいぶ異なる運用を想定していますので設定ファイルの編集が必須になってきます。 .. code-block:: bash # 設定ファイル作成 cp ./support-files/my-default.cnf ./etc/my.cnf # 設定ファイル編集 vim ./etc/my.cnf ----------------- my.cnf 編集内容 ----------------- .. seealso:: http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html .. warning:: ここでは変数が使えませんのでPATHは適宜設定してください .. code-block:: diff --- ./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. ===================== パーミッションの設定 ===================== .. code-block:: bash # 権限変更 chown -R mysql.mysql ${ins_dir} =============== 初期DBの構築 =============== .. code-block:: bash # 初期DBの作成 ${ins_dir}/scripts/mysql_install_db --defaults-file=/opt/mysql-5.6.14/etc/my.cnf ====== 起動 ====== .. code-block:: bash ${ins_dir}/bin/mysqld_safe --defaults-file=/opt/mysql-5.6.14/etc/my.cnf & ====== 停止 ====== .. code-block:: bash cat ${ins_dir}/var/tmp/mysqld.pid | xargs kill -TERM