dポイントプレゼントキャンペーン実施中!

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

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 です。

A 回答 (5件)

>因みに、これは関係ないと思いますが、


>/usr/local/mysql の所有者・権限は root:mysql 700 です。
これが原因です。

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

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

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

何でなのか?

お礼日時:2010/01/17 13:43

すでにMySQLの質問から逸脱しているのでここでは回答しかねますが


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

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

いろいろとご意見ありがとうございました。

お礼日時:2010/01/18 14:10

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



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

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

そうすると失敗原因の特定は難しくなってしまいました。
はぁ(落)

お礼日時:2010/01/15 15:30

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



そういう設定になっているからとしか・・・
たぶん/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 &

と、わたしの備忘録にかいてあります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

# 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

とりあえず



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

としてみてください。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2010/01/14 22:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す