• ベストアンサー
  • 困ってます

インストール・初期化後、初起動でエラー

  • 質問No.5593378
  • 閲覧数1266
  • ありがとう数8
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 94% (100/106)

インストール・初期化後、初起動でエラー

OS : CentOS 5.3
MySQL 5.0.89 をソースからインストール

rootユーザにて
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhost mysql]# Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/localhost.localdomain.com.pid
100114 20:02:07 mysqld ended

エラーログをみる
# cat var/localhost.localdomain.com.err
...
/usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/var/ib6TIfDM' (Errcode: 13)
100114 20:02:07 InnoDB: Error: unable to create temporary file; errno: 13
100114 20:02:07 [ERROR] /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/var/localhost.localdomain.com.pid' (Errcode: 13)
100114 20:02:07 [ERROR] Can't start server: can't create PID file: Permission denied
100114 20:02:07 mysqld ended


/usr/local/mysql/var の所有者・権限は、mysql:mysql 700で
"# /usr/local/mysql/bin/mysqld_safe --user=mysql &" は mysqlユーザで起動するという意味ですよね(?)

/usr/local/mysql/my.cnf の [mysqld] には、
tmpdir = /usr/local/mysql/var/ を書いてます。

my.cnf は /etc/my.cnf にあります。

なぜ書き込めないのでしょうか?

どなたかご教示お願い致します。


因みに、これは関係ないと思いますが、
/usr/local/mysql の所有者・権限は root:mysql 700 です。

質問者が選んだベストアンサー

  • 回答No.4
  • ベストアンサー

ベストアンサー率 33% (32/96)

>因みに、これは関係ないと思いますが、
>/usr/local/mysql の所有者・権限は root:mysql 700 です。
これが原因です。

例え下記のようになっていても、
>/usr/local/mysql/var の所有者・権限は、mysql:mysql 700で
親ディレクトリがroot:mysql 700ために、/usr/local/mysql/varには
mysqlで書き込みができません、試してください。
お礼コメント
brosis

お礼率 94% (100/106)

おしゃっるとおり
/usr/local/mysql を root:mysql 720 にしたら、
起動できなくなりました。

しかし、720 と、グループに書き込み権限を与えても
/usr/local/mysql/var mysql:mysql 700 には書き込めないんですねぇ。

何でなのか?
投稿日時:2010/01/17 13:43

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 51% (3827/7415)

すでにMySQLの質問から逸脱しているのでここでは回答しかねますが
パーミッションはLinuxの基本なのできちんと理解した方がよいですね。
パーミッション、グループ、ディレクトリの設定について一から
やり直してみてください
お礼コメント
brosis

お礼率 94% (100/106)

分かりました。
Linux を一から、勉強し直そうと思います。

いろいろとご意見ありがとうございました。
投稿日時:2010/01/18 14:10
  • 回答No.3

ベストアンサー率 51% (3827/7415)

>mysqlユーザー以外に「書き込み権限」が必要なユーザーとは何ですか?

とくにないと思います。
PC-UNIXの運用ポリシーとしてはデーモンをroot以外の特定ユーザーで
動かすというのがトレンドですから、実行権限者mysqlさえよめる700で
十分だと思います。
お礼コメント
brosis

お礼率 94% (100/106)

そうなんですか。
ご意見ありがとうございます。

そうすると失敗原因の特定は難しくなってしまいました。
はぁ(落)
投稿日時:2010/01/15 15:30
  • 回答No.2

ベストアンサー率 51% (3827/7415)

>どうして?って感じです。

そういう設定になっているからとしか・・・
たぶん/usr/local/mysql/var/への書き込みがデフォルトユーザーのmysql
にしか許可されていないからだと思います

mysqlをソースから入れるときのざっとした手順としては

(1)アーカイブを持ってきて解凍
(2)./configure 適当なオプション && make
(3)suになってmake install
(4)scripts/mysql_install_dbを実行
(5)cp support-files/my-medium.cnf /etc/my.cnf
(6)mysqlグループをつくって、mysqlユーザーをつくる
(7)chown -R mysql:mysql /usr/local/mysql
(8)/usr/local/mysql/bin/safe_mysqld --user=mysql &

と、わたしの備忘録にかいてあります。
お礼コメント
brosis

お礼率 94% (100/106)

ありがとうございます。

# chown -R mysql:mysql /usr/local/mysql
する前は、
# ll /usr/local/mysql
...
...
drwx------ 4 mysql mysql 4096 1月 13 21:29 var
となっていました。


>たぶん/usr/local/mysql/var/への書き込みがデフォルトユーザーのmysql
>にしか許可されていないからだと思います
mysqlユーザー以外に「書き込み権限」が必要なユーザーとは何ですか?
投稿日時:2010/01/15 10:55
  • 回答No.1

ベストアンサー率 51% (3827/7415)

とりあえず

chown -R mysql:mysql /usr/local/mysql

としてみてください。
お礼コメント
brosis

お礼率 94% (100/106)

ご回答ありがとうございます。
おっしゃるとおりにしましたら、簡単に起動しました!

どうして?って感じです。
投稿日時:2010/01/14 22:10
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ