最近アップグレードされた仮想マシンでMySQLサービスを開始できません。

最近アップグレードされた仮想マシンでMySQLサービスを開始できません。

14.04にアップグレードしたばかりのUbuntu Serverを実行しているVMがあります。 VM は MySQL データベースへのアクセスを提供します。ただし、アップグレード後にデータベースが起動を拒否し、それを把握するのに十分な知識がありません。

root@vm-1 ~ $ service mysql start
start: Job failed to start

私はそれを確認し/var/log/mysql/error.logて発見しました:

141001 20:23:10 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
141001 20:23:10 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
141001 20:23:10 [Note] Server socket created on IP: '127.0.0.1'.
141001 20:23:10 [ERROR] Can't start server : Bind on unix socket: Permission denied
141001 20:23:10 [ERROR] Do you already have another mysqld server running on socket: /var/run/mysqld/mysqld.sock ?
141001 20:23:10 [ERROR] Aborting

141001 20:23:10  InnoDB: Starting shutdown...
141001 20:23:11  InnoDB: Shutdown completed; log sequence number 24590151085
141001 20:23:11 [Note] /usr/sbin/mysqld: Shutdown complete

ファイルの完全な内容を見つけることができますここ。上記のコマンドを実行する前にそれを削除したので、serviceすべてはMySQLサービスを開始しようとする単一の試みからのものです。

私も明らかなことを確認しました:

$ ps ax | grep mysql
 3623 pts/1    S+     0:00 grep --color mysql
$ rm /var/run/mysqld/mysqld.sock
rm: cannot remove ‘/var/run/mysqld/mysqld.sock’: No such file or directory
$ netstat | grep 3306

データベースディレクトリに正しい権限があることを確認しました。

$ chown -R mysql:root /data/database/

走ってみましたが、straceはっきりとしたものは見えませんでした。しかし、私はそれについてほとんど知らないので、結果を見つけることができますここ

結局私は次/etc/mysql/my.cnfのようになります。

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0
[mysqld]
user        = mysql
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /data/database
tmpdir      = /tmp
skip-external-locking
bind-address        = 127.0.0.1
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit   = 1M
query_cache_size        = 16M
log_error                = /var/log/mysql/error.log
expire_logs_days    = 10
max_binlog_size         = 100M
[mysqldump]
quick
quote-names
max_allowed_packet  = 16M
[mysql]
[isamchk]
key_buffer      = 16M
!includedir /etc/mysql/conf.d/

bind-address上記の行を私のネットワーク上のコンピュータの実際の内部IP、0.0.0.0および127.0.0.0127.0.1.1この行は127.0.1.1 foo私の行の1つが私の仮想マシンのホスト名であるため)に変更してみました。/etc/hostsそれらのどれも何の違いもありません。私も良い測定のためにその行をコメントアウトしようとしました。foo10.1.1.213bind-address

私のシステムの詳細:

$ cat /etc/issue
Ubuntu 14.04.1 LTS \n \l

$ dpkg -s mysql-server | grep version
Version: 5.5.38-0ubuntu0.14.04.1

答え1

この問題は実際に服に関連しています。何らかの理由で、これらの2行は新しいファイルでコメントアウトされています/etc/apparmor.d/usr.sbin.mysql

#  /var/lib/mysql/ r,  
#  /var/lib/mysql/** rwk,

コメントを削除すると問題が解決しました。ありがとう@ベログそして@slm私に正しい方向を教えてくれた人。

関連情報