web-dev-qa-db-ja.com

Percona MySQL5.5が起動しない

ここで新しいサーバーをセットアップしようとしていますが、エラーログでこれを取得し続けます:

mysqld_safe Starting mysqld daemon with databases from /data/mysql/myisam
[Warning] Can't create test file /data/mysql/myisam/hostname.lower-test
[Warning] Can't create test file /data/mysql/myisam/hostname.lower-test
[Note] Flashcache bypass: disabled
[Note] Flashcache setup error is : setmntent failed

/usr/sbin/mysqld: File '/var/mysql/bin/bin-log.index' not found (Errcode: 13)
[ERROR] Aborting

[Note] /usr/sbin/mysqld: Shutdown complete

mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

/data/mysqlの下のすべて(ibdataおよびmyisamフォルダー)は私のmysql:mysqlに所有されており、適切な権限を持っています

/var/mysqlの下にbinログとrelayログがあるフォルダーについても同じことが言えます。

apparmorがサーバーから削除されました

何か案は?

PS

apparmor以外の何かがmysqlファイルにアクセスするための権限に影響を与えているようです

データディレクトリをよりデフォルトのものに変更した後-/ var/lib/mysqlと「テストファイルを作成できません」エラーは消えましたが、「 '/ var/mysql/bin/bin-log.index'が見つかりません(Errcode: 13)」はまだあります

PPS

だから私はapparmorをインストールし直し、すべてのフォルダーをmysqldのプロファイルに追加しました。上記のエラーはなくなりました(またはmysqlはその時点に到達しません)

私が今持っているのはこれです:/ usr/sbin/mysqld:共有ライブラリのロード中にエラーが発生しました:libpthread.so.0:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません

頭を壁にぶつけた。

1
keymone

この質問はもう少し古いですが、他の人がこのページに出くわした場合(私がしたように)、これが私を働かせた理由です:

私の場合、答えはapparmorでした。

解決策:ファイルを編集します/etc/apparmor.d/usr.sbin.mysqld

次の行を追加します。

/path/to/new/data/ r,
/path/to/new/data/** rwk,
/path/to/new/logs/ r,
/path/to/new/logs/ rw,

次に、apparmorを再起動します。

Sudo /etc/init.d/apparmor restart

AppArmorは、mysqlがこれらのファイルの新しい場所にアクセスするのを妨げています。これが、権限がすべて正しく見える理由です。 「何か」がmysqlが新しい場所にアクセスするのを妨げているのは正しいことです。その「何か」は「apparmor」です:-)

ApparmorはUbuntu11.10の標準のようですが、ここでこの問題が発生しました。 10.04にはデフォルトでApparmorがインストールされていないようです。

これが誰かを助けることを願っています、私はこれの上に私の髪を何時間も引き裂いてきました!

4
Stoo

新規インストールですか?

bin-log.indexは、バイナリログファイル名のインデックスファイルです。一時的な回避策として、log-bin=my.cnf行にコメントを付けて再試行できます。

それでも問題が解決しない場合は、MySQLをmysqld_safe --user=root &で起動し、MySQLにログインして、次のコマンドを実行してみてください。

mysql> FLUSH LOGS;
mysql> RESET MASTER;

そして、MySQLを再起動します。

Sudo killall mysqld_safe
Sudo /etc/init.d/mysqld start
0
quanta

これがまったく新しいインストールである場合は、mysql_install_dbスクリプトを実行して、必要なテーブル/ファイルを作成する必要があります。

0
sreimer