2006年05月30日

MySQLの設定がうまくいかない時の対策

導入自体はaptを使ってさくっと終わるMySQLですが、いざ立ち上げてみると2台やって2台とも失敗。その時の解決方法。ちなみに環境はCentOS 4.3です。

その1:"/tmp"のアクセス権が正しくない

エラーログ(/var/log/mqsqld.log)には以下のようなエラーが出力されます。
060526 16:00:42 mysqld started
/usr/libexec/mysqld: Can't create/write to file '/tmp/ibFNQH8i' (Errcode: 13)
060526 16:00:42 InnoDB: Error: unable to create temporary file; errno: 13
060526 16:00:42 [ERROR] Can't init databases
060526 16:00:42 [ERROR] Aborting

060526 16:00:42 [Note] /usr/libexec/mysqld: Shutdown complete

060526 16:00:42 mysqld ended

/tmpの下の階層の名称はランダムです。

この場合はユーザmqsql/tmpに対してアクセス権がないのが原因です。
特に問題がなければ、全ユーザに対してアクセス権を開放してしまいましょう。
chmod 777 /tmp


その2:"/var/lib/mysql"配下のアクセス権が正しくない

エラーログ(/var/log/mqsqld.log)には以下のようなエラーが出力されます。
060529 16:11:53 mysqld started
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
060529 16:11:53 InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
060529 16:11:53 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
060529 16:11:53 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
060529 16:11:54 InnoDB: Started; log sequence number 0 0
060529 16:11:54 [ERROR] /usr/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
060529 16:11:54 [ERROR] Fatal error: Can't open privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
060529 16:11:54 mysqld ended


ポイントは下から2行目、3行目の'./mysql/host.frm'。これは初期設定スクリプトが作成する権限テーブル(すべての権限を管理するmysqlデータベース)関連のファイルのはず。該当ファイルの格納ディレクトリである/var/lib/mysql/mysqlを確認したところ、ファイルのオーナが全てroot:rootでした。(otherに対して何の権限もなかった)
別の環境で確認したところ/var/lib/mysql配下のファイルは全てオーナがmysql:mysqlだったので、権限を正しく設定し直します。
chown -R mysql:mysql /var/lib/mysql

その1は環境の問題なので分かりますが、その2が何で発生したのか不思議です。

MySQLは初めて触ったへなちょこさんなので、有識者様の助言、ツッコミお待ちしております。

参考資料はこちらです。

MySQL 4.1 リファレンスマニュアル :: 2.4 インストール後の設定とテスト
http://dev.mysql.com/doc/refman/4.1/ja/post-installation.html

MySQL 4.1 リファレンスマニュアル
http://dev.mysql.com/doc/refman/4.1/ja/index.html
posted by 月水和尚 (とも) at 09:49 | Comment(0) | TrackBack(0) | Linux(UNIX)全般
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。