![chown ルート:ルート /tmp](https://rvso.com/image/83694/chown%20%E3%83%AB%E3%83%BC%E3%83%88%3A%E3%83%AB%E3%83%BC%E3%83%88%20%2Ftmp.png)
mysql57-community-release-el6-7.noarch.rpm リポジトリを使用して、RHEL 6.5 に Mysql サーバー 5.7.9 をインストールしました。インストールは成功しましたが、起動しようとするとエラーが発生します。/var/log/mysqld.log から次のログを取得します。
> 2016-02-16T08:16:55.473839Z 0 [Note] InnoDB: PUNCH HOLE support
> available 2016-02-16T08:16:55.473945Z 0 [Note] InnoDB: Mutexes and
> rw_locks use GCC atomic builtins 2016-02-16T08:16:55.473983Z 0 [Note]
> InnoDB: Uses event mutexes 2016-02-16T08:16:55.474011Z 0 [Note]
> InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
> 2016-02-16T08:16:55.474038Z 0 [Note] InnoDB: Compressed tables use
> zlib 1.2.3 2016-02-16T08:16:55.474062Z 0 [Note] InnoDB: Using Linux
> native AIO 2016-02-16T08:16:55.474908Z 0 [Note] InnoDB: Number of
> pools: 1 2016-02-16T08:16:55.475257Z 0 [Note] InnoDB: Not using CPU
> crc32 instructions mysqld: Can't create/write to file '/tmp/ibUFqzVe'
> (Errcode: 13 - Permission denied) 2016-02-16T08:16:55.475430Z 0
> [ERROR] InnoDB: Unable to create temporary file; errno: 13
> 2016-02-16T08:16:55.475460Z 0 [ERROR] InnoDB: Plugin initialization
> aborted with error Generic error 2016-02-16T08:16:55.475490Z 0 [ERROR]
> Plugin 'InnoDB' init function returned error.
> 2016-02-16T08:16:55.475515Z 0 [ERROR] Plugin 'InnoDB' registration as
> a STORAGE ENGINE failed. 2016-02-16T08:16:55.475536Z 0 [ERROR] Failed
> to initialize plugins. 2016-02-16T08:16:55.475557Z 0 [ERROR] Aborting
>
> 2016-02-16T08:16:55.475583Z 0 [Note] Binlog end
> 2016-02-16T08:16:55.475695Z 0 [Note] Shutting down plugin
> 'keyring_file' 2016-02-16T08:16:55.476442Z 0 [Note] /usr/sbin/mysqld:
> Shutdown complete
>
> 2016-02-16T08:16:55.502968Z mysqld_safe mysqld from pid file
> /var/run/mysqld/mysqld.pid ended
このエラーが何を示しているのかアドバイスをお願いします。
答え1
MySQL サーバーは /tmp ディレクトリにアクセスできず、一時ファイルの書き込みや作成ができません。/tmp ディレクトリが root ユーザーの所有であり、/tmp ディレクトリにスティッキー ビットが設定されていることを確認してください。このエラーを修正するには、次のコマンドを入力してください。root ユーザーとしてログインし、次のように入力する必要があります。
chown ルート:ルート /tmp
chmod 1777 /tmp
試して
/etc/init.d/mysqld を起動します
答え2
> [ERROR] InnoDB: Unable to create temporary file; errno: 13
この行は問題があるようです。/tmp
dir が存在するかどうか (存在するはずです)、mysql ユーザー (または使用しているユーザー) が使用できるかどうかを確認してください。 config 内のオプションを使用して別のパスを使用することもできます。--tmpdir
詳細情報ドキュメント)。
SELinux にも問題が発生する可能性があります (Enforcing モードの場合)。監査ログ ( などausearch -ts today -m avc | audit2allow
) をチェックして、/tmp dir が mysql に対してブロックされていないかどうかを確認します。テストでは、 で SELinux を無効にすることができますsetenforce 0
。