2017-06-15 15 views
3

私は再び私logserverをチェックアウトしたかったが、私は、URLを訪問したときに、突然のすべてが、私はこのメッセージを取得開始します。MySQLの文句を言わないもう

私は

FATAL xenial Ubuntuの上で実行しています:MySQLへ接続できませんサーバーは 'localhost'にあります。

-- Unit mysql.service has begun starting up. 
Jun 15 19:26:12 arjanlog audit[3665]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/3665/status" pid=3665 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112 

Jun 15 19:26:12 arjanlog audit[3665]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=3665 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=0 

Jun 15 19:26:12 arjanlog audit[3665]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/3665/status" pid=3665 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112 
Jun 15 19:26:12 arjanlog kernel: audit: type=1400 audit(1497547572.504:69): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" 
name="/proc/3665/status" pid=3665 comm="mysqld" requested_mask="r" denied_m 

Jun 15 19:26:12 arjanlog kernel: audit: type=1400 audit(1497547572.504:70): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=3665 comm="mysqld" requested_mask="r" 

Jun 15 19:26:12 arjanlog kernel: audit: type=1400 audit(1497547572.504:71): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/3665/status" pid=3665 comm="mysqld" requested_mask="r" denied_m 

Jun 15 19:26:12 arjanlog systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE 

誰がどんな考えを持っています:あなたは私がjournalctl -xeを行うとき、私は、次のメッセージが表示されます

「/ config.phpの」を含む、有効なMySQLデータベース名を指定していることを確認してください?解決

+0

私は言葉 'DENIED'で言うだろうそれは許可の問題のようです。 –

+0

これを試してください: 'sudo apt-get install mysql-server' – Edward

+0

@Edward mysql-serverはすでに最新バージョン(5.7.18-0ubuntu0.16.04.1) – Arjan

答えて

0

:須藤サービスAppArmorのティアダウンは

+1

です。 – Papotitu

0

完全AppArmorのを停止する必要はないかもしれません。あなたが問題の核心を追跡したくない場合は、mysqldのためのAppArmorを無効にするには十分なブルートフォースのようになります。

ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/usr.sbin.mysqld

6

私もこの問題を抱えていたと/etc/apparmor.d/usr.sbin.mysqldでAppArmorの設定ファイルを固定することにより、それを解決しました。

/proc/*/status r, 
    /sys/devices/system/node/ r, 
    /sys/devices/system/node/node0/meminfo r, 

journalctl -xe出力には、MySQLに使用許可が必要なファイルが表示されます。また/var/log/syslogで見ることができます:

Jun 15 19:26:12 arjanlog audit[3665]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/3665/status" pid=3665 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112 
Jun 15 19:26:12 arjanlog audit[3665]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=3665 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=0 
Jun 15 19:26:12 arjanlog audit[3665]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/3665/status" pid=3665 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112 

/usr/sbin/mysqldDENIEDr)を読み取るため/proc/3665/status/sys/devices/system/node/をオープンしようとしていたことを意味します。

apparmor設定ファイルでは、末尾にスラッシュ(/sys/devices/system/node/)が必要なので、放置しないように注意してください。

0

エラーは、mysqlデータベースが壊れていたことです。私は/var/log/mysql/error.logをログに記録するために行ったとするとき、それは誤りであったことを見ることができる:

InnoDB: Database was not shutdown normally! 

あり、誰かがtable corruption issue

のように使用することができますそこにいくつかの解決策であった。しかし、私はwasnとして、それは私のために動作しませんでしたこの問題を解決するには、WRITEモードでサーバーを起動できません。

私は、ディレクトリ/var/lib/mysqlのコピーを作成することによって、問題を解決するために管理 - 私はmysql.oldにコピーしてからmysqlディレクトリを削除しました。

sudo mysqld --initialize --initialize-insecure 

は、私は、ユーザーにmysqlディレクトリのユーザーとグループを変更することにより、新しいディレクトリのパーミッションを変更した新しいmysqlディレクトリ

を生成するには:

は、それから私は、ターミナルでコマンドを呼ばmysqlグループ:mysql。それから私は、コマンドと呼ばれる

sudo chown -R mysql:mysql /var/lib/mysql 

sudo mysql -u root 

としてパスワードを変更:

SET PASSWORD FOR [email protected]'localhost' = PASSWORD('newpassword'); 

して再起動MySQLサーバ:

​​

とイブchownコマンドを使用しますうまくいった。


私は道に沿って使用しているコマンドの一部は(彼らは問題を修正するに貢献どのくらいかわからないが)あった。

sudo apt-get --reinstall install mysql-server-5.7 
関連する問題