今日、AmazonRedHatインスタンスで同じ問題が発生しました。(mysqlシェルからの)mysqldecribeを実行することもmysqldumpを実行することもできませんでした。これを解決するために、私は最も明白な解決策を試しました:
# chown root:root /tmp -v
# chmod 1777 /tmp -v
# /etc/init.d/mysqld restart
しかし、これは役に立ちませんでした。/var/log/mysqld.logで、私はまだ見ました:
141022 10:23:35 InnoDB: Error: unable to create temporary file; errno: 13
141022 10:23:35 [ERROR] Plugin 'InnoDB' init function returned error.
141022 10:23:35 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
MySQLデーモンが/tmpに書き込むことを許可しなかったのはSELinuxであることが判明しました。したがって、私がしたことは次のとおりでした。
# getenforce
Enforcing
SELinuxが強制モードで実行されているかどうかを確認するには(これについて詳しくは、こちらをご覧ください)。このための迅速かつ迅速な解決策は、SELinuxパーミッシブモードに切り替えることでした。
# setenforce 0
# getenforce
Permissive
# /etc/init.d/mysqld restart
上記は私の問題を解決しました。
強化された生産に取り組んでいる場合は、強制から許容に切り替えるときに非常に注意する必要があることに注意してください。この特定の設定は、再起動後にリセットされることにも注意してください。