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 するのは普通にソースコードでインストールしたほうがいいかなあ。 自動セットアップスクリプトをバージョン毎に用意して必要な時だけ仮想環境にセットアップすればいいのかも。