あいつの日誌β

働きながら旅しています。

MySQL: xaicron/mysqlenv を試してみた

xaicron/mysqlenv を試してみました。 で、エラーが出てしまったので以下備忘録。

現象

xaicron/mysqlenv (version 0.01) で root ユーザーで MySQL5.1 をインストールする際にエラーが出る。

やりたかったこと。

開発環境の構築をする際に mysqlenv で簡単にセットアップできそうな気がしたので試したみました。 試した環境はAWSのEC2です。

% cat /etc/redhat-release                                                                                            [~]
CentOS release 6.3 (Final)

作業ログ

root ユーザーのディレクトリに mysqlenv をインストール。 一般ユーザーが mysql コマンドを叩く前提にするので /usr/local/ に移動

sudo su
cd ~
curl -kL http://bit.ly/mysqlenv | bash
mv /root/.mysqlenv /usr/local/mysqlenv

パスを通す

echo 'export MYSQLENV_HOME=/usr/local/mysqlenv' >>/etc/profile.d/mysqlenv.sh
echo 'export PATH=$MYSQLENV_HOME/bin:$MYSQLENV_HOME/shims:$MYSQLENV_HOME/mysql-build/bin:$PATH' >> /etc/profile.d/mysqlenv.sh
chmod 755 /etc/profile.d/mysqlenv.sh
exec $SHELL

インストール

mysqlenv install 5.1.70

(しばらく待つ)

130704 12:40:08 [ERROR] /usr/local/mysqlenv/mysqls/5.1.70/libexec/mysqld: Can't find file: './mysql/db.frm' (errno: 13)
ERROR: 1017  Can't find file: './mysql/db.frm' (errno: 13)
130704 12:40:08 [ERROR] Aborting

このようなエラーがでるのですが bin/mysql_install_db を実行してる気がする。 もし可能ならこの時点で my.cnf の設定をするようにアナウンスなどしてもらえるとうれしい。

こういうのって 作者の github で issue 作成していいのだろうか

で、続きの作業

cd /usr/local/mysqlenv/mysqls/5.1.70/

mkdir -p /usr/local/mysqlenv/mysqls/5.1.70/var/log
mkdir -p /usr/local/mysqlenv/mysqls/5.1.70/var/lib/mysql
mkdir -p /usr/local/mysqlenv/mysqls/5.1.70/var/run/mysqld
mkdir -p /usr/local/mysqlenv/mysqls/5.1.70/etc

/usr/local/mysqlenv/mysqls/5.1.70/etc/my.cnf をこんな風にする

[client]
port=3306
socket=/usr/local/mysqlenv/mysqls/5.1.70/var/lib/mysql/mysql.sock

[mysqld]
datadir=/usr/local/mysqlenv/mysqls/5.1.70/var/lib/mysql
socket=/usr/local/mysqlenv/mysqls/5.1.70/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log=/usr/local/mysqlenv/mysqls/5.1.70/logs/query.log

[mysqld_safe]
log-error=/usr/local/mysqlenv/mysqls/5.1.70/var/log/mysqld.log
pid-file=/usr/local/mysqlenv/mysqls/5.1.70/var/run/mysqld/mysqld.pid

で起動

cd /usr/local/mysqlenv/mysqls/5.1.70/
share/msyql/mysql.server start

感想

やっぱ開発環境で mysql を install するのは普通にソースコードでインストールしたほうがいいかなあ。 自動セットアップスクリプトをバージョン毎に用意して必要な時だけ仮想環境にセットアップすればいいのかも。