2016-06-27 27 views
3

私は最近Ubuntu 14.04にMySQLサーバ5.7をインストールしました(具体的にはthis roleを使用しています)。最初にインストールしたときには罰金始めたが、私はそれを再起動しようとすると、それだけで永遠にハング:MySQLサーバ5.7は起動せず、エラーログにも入力されていません

sudo service mysql restart 
* Stopping MySQL Community Server 5.7.13 
* MySQL Community Server 5.7.13 is already stopped 
* Re-starting MySQL Community Server 5.7.13 
.................................................................................................................................................................................... 
* MySQL Community Server 5.7.13 did not start. Please check logs for more details. 

さらに悪いことに、何のエラーログは、(私が/var/log/mysql//var/log/mysql.errをチェックしました)どこでも読み込まれますように思えません。

冗長モード(sudo /usr/sbin/mysqld --user=mysql --verbose)で実行すると、何も表示されません。

どこでこれを診断できますか?

+0

それはそれは権限に基づいてログを開くことができないため、DBが起動できない可能性がありますT log。 –

+0

ログとデータディレクトリのすべてのアクセス許可は私のグループに属しています。ユーザーmysql – Eli

+0

私はまったく同じ問題を抱えています。あなたは解決されたyeTを見つけましたか? – John

答えて

6

私はこの正確な問題も抱えていましたが、私の解決策があなたの問題を解決することを願っています。

手動でMySQL 5.7をインストールしたとき、正常に実行されましたが、Anipalロールでは起動しませんでした。 mysqlログファイルは役に立たなかった。 mysqldのための方針は、ファイルが/var/log/に書き込むことはできませんので、

Aug 10 18:50:05 vagrant-ubuntu-trusty-64 kernel: [ 4446.790627] type=1400 audit(1470855005.470:40): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/var/log/mysql.err" pid=13991 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=109 ouid=109 

AppArmorは/var/log/mysql.errファイルへのアクセスを拒否されたばかり/var/log/mysql//var/log/syslogを確認するしかし私は、AppArmorのから多くのメッセージを発見しました。 mysqlのAppArmorポリシーは/etc/apparmor.d/usr.sbin.mysqldです。ログファイルのアクセスショーを扱う政策のセクション:

# Allow log file access 
    /var/log/mysql/ r, 
    /var/log/mysql/** rw, 

これは基本的にAppArmorのログファイルが/var/logについての規定で/var/log/mysqlに書き込まれることを想定していると言います。それはポリシー内のディレクトリの外に書こうとしているmysqlを見ているので、あなたをシャットダウンします。 mysqlがファイルを/var/logに書き込むようにする新しいポリシーを追加することを含むいくつかの解決方法がありますが、ログファイルを扱うAnatile変数を更新するのが最も簡単です。

mysql_slow_query_log_file: /var/log/mysql-slow.log 
mysql_log_error: /var/log/mysql.err 

私はこれらのデフォルトをオーバーライドし、代わりに/var/log/mysqlに移動:geerlingguy.mysql役割2つのログファイルポインタのデフォルトの変数で

が設定されている

mysql_slow_query_log_file: /var/log/mysql/mysql-slow.log 
mysql_log_error: /var/log/mysql/mysql.err 

今AppArmorには満足している、とmysqlが起動し、正常に動作します。残りのプレイブックは正常に完了します。 AppArmorのとMySQLの詳細については

、このページは議論や代替ソリューションを提供しています。 ​​

+0

が100%正しくなりました。私は数ヶ月前にこれに来て、自分の質問に答えるのを忘れましたが、あなたは私がしたのと同じ答えに来ました。これを書いてくれてありがとう! – Eli

関連する問題