LinuxへのMySQL5.5インストール(さくらVPS)
今回はさくらVPSへMySQLをインストールします
・環境
さくらVPS Linux CentOs6.4 MySQL5.5.1
仕事でも何度かMySQLインストールやった事あるけど
いつもyumで簡単インストールしてました。
そもそも、簡単だからよくyum使うけど
ソースからのインストールとyumインストールの違いについて
良く分かってなかったのでちょっと調査。
※参考
yumとソースインストールのメリット・デメリット [遊びとお勉強の村]
なるほど。
特に設定を考慮せずとりあえず手っ取り早くインストールしたければyum、
環境に応じて柔軟な設定をしたければ手間だけどソースからインストールって事で良いのかな。
今回は勉強も兼ねているので、ソースからインストールしたいと思います。
1.ソースダウンロード、解凍
ダウンロードと解凍します
cd /usr/local/src/ wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.10.tar.gz tar xzf mysql-5.5.10.tar.gz
MySQL :: Download MySQL Community Server
いつもこのサイトで迷子なるのですが、
「Looking for previous GA versions?」の「Archived versions」って所から
辿ったほうが個人的にはダウンロードリンクに辿り着ける気がします。
ここから32bit版のバージョン5.5.10をダウンロードしました
2.インストール
コンパイラ
mysql5.5からはconfigurateでは無くcmakeでコンパイルするらしいです。
cmake無かったようなのでインストール
後、MySQL依存パッケージのncursesってのも必要らしいので
とりあえずインストール
こういう時yum便利
yum install -y cmake yum install ncurses-devel
基本的なオプションを指定して実行
cd mysql-5.5.10 cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_PIC=1
- DCMAKE_INSTALL_PREFIX
MySQLのホームディレクトリ、指定しない場合デフォルトの/usr/localに出力されるらしい
色々と面倒になるぽいので、指定するようにする。
ここで指定する事で複数バージョンのmysqlの管理も可能になるかと
- DDEFAULT_CHARSET
デフォルトの文字セット
- DDEFAULT_COLLATION
文字セット関連
- DWITH_EXTRA_CHARSETS
デフォルトで指定された文字コード以外をサポートしたい場合の指定
個別でも指定できるみたいだけど面倒なのでall
- DMYSQL_UNIX_ADDR
Unixドメインソケットのパス?
複数mysqlをインストールするので無ければ必要ないかも
- DWITH_PIC
共有ライブラリ使用する為の設定?
指定したほうが良いぽい
ちなみに
コンパイルはconfigurateで行うと思い調べていました・・・
今回は使用しないですが参考までに残しておきます
5.5以前のバージョン時に…
./configure --prefix=/usr/local/mysql \ --enable-assembler \ --with-charset=utf8 \ --with-unix-socket-path=/var/lib/mysql/mysql.sock \ --with-embedded-server \ --with-extra-charsets=all
- prefix
MySQLのホームディレクトリ、指定しない場合デフォルトの/usr/localに出力されるらしい
色々と面倒になるぽいので、指定するようにする。
ここで指定する事で複数バージョンのmysqlの管理も可能になるかと
- enable-assembler
ググったけど分からなかった、何だこれ。
とりあえず指定することにする
- with-charset
デフォルトの文字セット
- with-unix-socket
Unixドメインソケットのパス?
- with-embedded-server
分からない!けどとりあえず指定
- with-extra-charsets
デフォルトで指定された文字コード以外をサポートしたい場合の指定
個別でも指定できるみたいだけど面倒なのでall
ビルド&インストール
make make install
ビルド時に流れるログ形式がconfigurateとは違う
個人的にはこっちの方がなんか好きかも
3.mysql初期設定
データベースの初期
システムテーブルを作成します
/usr/local/mysql/scripts/mysql_install_db \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data
- user
mysqldを実行するときのログインユーザ名
- basedir
MySQL データ ディレクトリ
多分この辺りは基本的な設定なので指定しておく
初期化実行時エラー出ました、、
130908 9:07:30 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-locking' 130908 9:07:30 [ERROR] Aborting
skip-bdbオプションは,5.5ではサポートされない事によるエラーらしいです
設定ファイル確認した所、skip-lockingの設定ありました
less /etc/my.cnf skip-locking
実は本mysql5.5インストール作業前に、ちょっと過去バージョンmysqlインストール作業練習を
ごちょごちょやっていたので、その時の設定ファイルが残っていたようでした
という事で、先に設定ファイル作成から行います
設定ファイル作成
ソース側からコピー配置。
mysqlはデフォルトでは、/etc/my.cnfの設定ファイルを見るらしい
cp /usr/local/src/mysql-5.5.10/support-files/my-medium.cnf /etc/my.cnf
設定ファイル配置後、再度データベース初期化コマンド実行したら
今度はエラー無く成功しました
4.MySQLのグループとユーザーの作成、所有者変更
最初にやった方が良いのかな、とりあえず作成
groupadd mysql useradd -g mysql -d /usr/local/mysql mysql useradd: warning: the home directory already exists. Not copying any file from skel directory into it.
ユーザー作成でエラー発生、ホームディレクトリ既に存在するよってエラー
cat /etc/passwd |grep mysql mysql:x:502:502::/usr/local/mysql:/bin/bash
一応ユーザー作成されているようなのでスルー
ユーザー作成は初めに行ったほうが良いかも
所有者変更
chown -R mysql:mysql /usr/local/mysql
5.起動スクリプト作成
cp support-files/mysql.server /etc/init.d/mysql
パスを設定
vi /etc/init.d/mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data
実行権限付与
chmod 755 /etc/init.d/mysql
mysqlコマンド実行しやすいようシンボリックリンク貼ります
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
起動確認
service mysql start Starting MySQL. SUCCESS! ps ax|grep mysql mysql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ mysql> exit service mysql stop Shutting down MySQL. SUCCESS!
正常に起動・停止出来ました
6.自動起動設定
chkconfig --add mysql chkconfig --list | grep mysql mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
以上でmysql5.5のインストールと初期起動設定が完了です。
実はインストール作業はすんなりいかず1度失敗しました。
失敗原因はコンパイラをcmakeで無くconfigurateで行ったからだと思います。
(詳細不明ですが)
mysqlホームディレクトリとか起動スクリプト等
インストール作業で作成したものを全て削除して上記手順で再度インストールし直しました。
失敗も含めてトータル4時間位(3日で分けて)掛かりました。。。
とりあえず完了です。