環境
・CentOS 7.3
・MySQL 5.7
前提
CentOS7に標準のMariaDBが入ってて、最初はそれを使う予定だったんですが、途中で変更になってMriaDBを削除、MySQL5.7を入れました。
で、自動起動設定をしようと思い、自動起動設定コマンド叩くとなぜか怒られました。
# systemctl enable mysqld.service
Failed to execute operation: Too many levels of symbolic links
サービスの自動起動設定の一覧見てみても、
# systemctl list-unit-files -t service|grep mysql
mysql.service bad
mysqld.service bad
だいぶ残念なことになってる。何ですか、badって。
解決策
なんか余分なシンボリックリンクが残っていたようです。
サービスが登録してあるディレクトリを見ると、
# pwd
# /etc/systemd/system
# ls -la
...
mariadb.service.d
multi-user.target.wants
mysql.service -> /usr/lib/systemd/system/mariadb.service
mysqld.service -> /usr/lib/systemd/system/mariadb.service
...
あ、なんかシンボリックリンクが………。
mysql.serviceとかがmariadbを見てる。
ってことで、シンボリックリンクを削除。
unlink mysql.service
unlink mysqld.service
これで、無事にmysqldの自動起動設定が出来るようになりました。
# systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
# systemctl is-enabled mysqld.service
enabled
CentOS7はいろいろと変更が多くて、いろんな所で地味に時間を取られそうです。
参考