読者です 読者をやめる 読者になる 読者になる

Starting MySQL...Manager of pid-file quit without updating [FAILED]

linux mysql

CentOSMySQLインストールしたのに起動しない。


調べてみると、SELinuxがらみ。適切なSELinuxのポリシー設定がされていないみたい。
特にユーザやプロセスごとに権限管理する必要もなく、
今まで通りrootはrootでいてくれればいいので、SELinuxは後々勉強するとして今は必要なし。


SELinuxの機能を停止して、無効にしてみる。



ポリシー違反を許可する。

/usr/sbin/setenforce permissive

ちなみに、SELinuxがどのモードで動いているか確認。Enforcingモードだと、アクセス制御が動作してる状態。

/usr/sbin/getenforce
Permissive

モードについて、調べてみた。



permissiveモードとenforcingモードの違い

SELinuxは,「enforcingモード」と「permissiveモード」という2種類のモードを持つ。
enforcingは,通常運用時のSELinuxのモード,つまり,「SELinuxによるアクセス制御が有効になった状態」のモードである。このモードではアクセス制御が働くため,きちんと設定されていないアプリケーションは動作しない。アプリケーションを起動しようとしても,アクセスが拒否されたことがログに記録されるだけで,何も起こらないわけだ。

一方,permissiveは,(例え設定が不十分であっても)一切アクセス拒否されずに,言い換えれば通常のLinuxと同じようにアプリケーションは動作する。ただし,本来はアクセスが拒否されるべきであり,その事実はログに記録される。つまり,アクセスが拒否されたことはログに記録されるが,アプリケーションは普通に動作する。

このpermissiveモードは,アプリケーションの設定を施していく際に用いられる。セキュリティ管理者は,ログに記録された「足りない権限」を設定に追加しながら,アプリケーションのアクセス制御の設定を詰めていくことになる。また,システムに障害が発生したときの原因究明にも用いられる。



Permissiveモードでも、SELinuxが動作してることには変わらないので、いっそ無効にする。

6行目をSELINUX=disabledに修正。
再起動後、有効に。

vi /etc/sysconfig/selinux


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0