ここで新しいサーバーをセットアップしようとしていますが、エラーログでこれを取得し続けます:
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:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません
頭を壁にぶつけた。
この質問はもう少し古いですが、他の人がこのページに出くわした場合(私がしたように)、これが私を働かせた理由です:
私の場合、答えは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がインストールされていないようです。
これが誰かを助けることを願っています、私はこれの上に私の髪を何時間も引き裂いてきました!
新規インストールですか?
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
これがまったく新しいインストールである場合は、mysql_install_db
スクリプトを実行して、必要なテーブル/ファイルを作成する必要があります。