2007年2月18日日曜日

MySQLのインストールで躓く.

 昨日の続きで、MySQLをインストールした訳ですが、インストール後うまく起動せずアレヤコレヤと悩みましたが、結局はディレクトリの権限設定をしていなかったと言う、「ちょ…有り得ないってw」と言う様なマヌケっぷりが原因でした orz

 ああ、気を付けよう気を付けよう.
 Windowsばっかり触ってると、こんな訳の分からないミスをします.
 …俺だけか orz

 一応Sourceからのインストール手順をメモ.

MySQL Sourceの入手.


 MySQLのサイトが変わっててびっくりした事は置いておき、ライセンス体系と言うかサーバー提供体系が変わったので、自分の利用体系にあったライセンスのMySQLを入手.
 今回は自宅でのテスト環境用なので、「Community」ページのダウンロードを選択.
 MySQL Community Server
 今回はSourceから入れますので、ページの一番下にある「Source downloads」と書かれたセクションのtarballをダウンロードしました.

MySQL をSourceからインストール.


 ダウンロードしたSourceを展開します.
 展開先を「/sources」にしました. 単なる好みです.
[??@fedora]# tar xvzf /(ソースパス) -C /sources/
[??@fedora]# cd /sources/mysql-5.x.xx
 準備完了.
 この後[ configure→make→make install ]と言う流れになりますが、どう言った環境でインストールするのかを先に決めておきます.

  • インストール先 : /usr/local/mysql

  • データベースパス : /usr/local/mysql/data

  • DBキャラクタセット : utf8


 今回はこの内容でいきます.
[??@fedora]# ./configure --prefix=/usr/local/mysql
   --localstatedir=/usr/local/mysql/data
   --with-charset=utf8
   --enable-thread-safe-client
 ……[configure中]……
[??@fedora]# make; make install
 ……[install中]……
 こんな感じでしょうか.
 間違えてるかもしれませんがw
 普通はinstall前にテストしますが、まぁそこまでする気力はありませんので.

 正常にインストールが完了したら、次はユーザーを作成します.
[??@fedora]# groupadd mysql
[??@fedora]# useradd mysql -g mysql

 ユーザーを作成後、インストール先ディレクトリの権限を指定します.
 lightmaterialはこれを抜かしていた訳ですね.
 正にマヌケ. King of Manuke.
[??@fedora]# chown -R mysql /usr/local/mysql
[??@fedora]# chgrp -R mysql /usr/local/mysql

 次に、初期データベースを作成するコマンド、管理者パスワードを設定するコマンドを実行します.
[??@fedora]# /usr/local/mysql/bin/mysql_install_db
[??@fedora]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[??@fedora]# mysqladmin -u root password (好きなパスワード)
 mysqld_safeでサーバーが起動する訳ですが、インストールがうまくいっていない場合は、ここでエラーが発生します.
 エラーが発生する場合は、dataディレクトリにエラーログが出力されているかと思いますので、このログが解決の手助けになるかもしれません.
 今回の例では
  /usr/local/mysql/data/hostname.domain.err
 と言うファイルがエラーログです.
 ちなみに、今回lightmaterialが起こしたエラーのログは
070218 13:52:30 mysqld started
070218 13:52:30 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
070218 13:52:30 mysqld ended
 と言う内容でした.

 続いてmy.cnfを設置します.
 my.cnfはMySQLサーバーの設定ファイル.
  /etc/my.cnf … MySQL全体の設定
  /usr/local/mysql/data … データベース単位
  ~/my.cnf … ユーザー単位
 設置場所によって、設定の適用範囲が異なります.
 一から全部自前で書いてもいいのですが、今回は手抜きでサンプルファイルをコピーします.
[??@fedora]# cp /usr/local/mysql/share/mysql/my-small.cnf /etc/my.cnf
 コピー後、必要に応じてmy.cnfの中身を編集します.
 特に注意が必要と思われるのはdefault-character-setでしょうか.
 今回はconfigureでキャラクタセットを指定してるので問題ありませんが、バイナリ導入時などは「latin1」と言うキャラクタセットで作成されているので、
   [client] #クライアントが使う設定
    default-character-set = utf8
   [mysqld] #MySQLサーバーが使う設定
    default-character-set = utf8
   [mysql] #MySQL全体の標準設定
    default-character-set = utf8
 と言うような感じで指定する必要があります.

 これで最低限のインストール作業が完了です.
 起動スクリプトを使って起動してみます.
[??@fedora]# /usr/local/mysql/share/mysql/mysql.server start
Starting MySQL SUCCESS

 起動を確認したので、一端終了します.
[??@fedora]# /usr/local/mysql/mysql.server stop

 次に起動スクリプトを起動しやすいように「/etc/init.d」配下にコピーします.
 お好みで自動起動設定してもいいかも.
[??@fedora]# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
[??@fedora]# chkconfig --add mysql
[??@fedora]# chkconfig mysql on

 これで一通りの使用環境が整いました.
 後は好みで設定をいじったり、データベースを作ったりするだけです.


 ふーっ…実際のインストールよりblogに書く方が疲れる orz

0 件のコメント: