2014年1月24日金曜日

EC2にmysqlを入れたけど、mysqlがfailedしてしまう問題の解決方法

  • このエントリーをはてなブックマークに追加

EC2にmysqlを入れずに、RDSでmysqlを使用するっていうことが多いけど、
外部のサーバからデータ参照をしたいとかいう場合は、
EC2にmysqlを入れる必要があったりすることもある。
VPCとかでやってしまえば外部のサーバからRDSを除く事も出来るけど、設定してなければ面倒ではある。

で、EC2にmysqlを入れたというだけだったら普通に記事を書く必要がないんだけど、
なぜかインストールして起動したらエラーが出てしまった。
ということでEC2にmysqlを入れたけどエラーが出てしまった件について書いてみたいと思う。

参考にしたサイト:http://www.zabbix.jp/node/2461

1.mysqlのインストール、設定

# yum -y install mysql-server
# vi /etc/my.cnf
# service mysql start
という感じでとりあえずmysqlをインストール。
mysqlの設定を弄ってあげて起動。
と思っていたらmysqlが起動出来ず。

基本的に変な設定はしていないのだが…と思ってログファイルなど色々と調べてみたところ、
mysqlの5.5から設定ファイルの仕様が変更になったとのこと。
ということで色々と対応をすることにした。


2.my.cnfとデータ領域を、mysql 5.5仕様に変更

■1:default-character-setを変更
default-character-setは5.5では使えなくなり、代わりにcharacter-set-serverを使う必要があるとのこと。
なので「default-character-set」 → 「character-set-server」としてあげた。

■2:データ領域を5.5形式で再作成
データ領域の形式も変更されているらしいので、これを作り直してあげる必要がある。
ちなみにyumでmysqlをインストールした場合、5.1系のデータ領域で作成される?らしい。
ということで下記の流れで/var/lib/mysqlを名前を変え、新しく生成。

# mv /var/lib/mysql /var/lib/mysql_old
# mysql_install_db --user=mysql --datadir=/var/lib/mysql

■3:mysqlの起動およびmysql_oldの削除
今までの手順で5.5仕様のデータ領域が作成されているので、起動してあげる。
で、問題なく起動出来たらmysql_oldを削除してあげればよい。
# service mysql start
# rm -d /var/lib/mysql_old


ということで5.5にしたらmysqlが起動出来なくなったという感じだった。
もちろんmysqlだけではなくて色んなものでバージョンアップしたら仕様変更のせいで起動出来なくなるとかそういう事もある。
なのでそういう場合に備えてちゃんとどうしたらよいかとかそういった事は調べておく必要があるなと思う。

Adsense