上記URLのページを確認すると、「If you install MySQL using an RPM or Debian package on the following Linux platforms, server startup and shutdown is managed by systemd:」とあり、「CentOS7」も対象になっていることが分かります。
CentOS7 の場合、MySQL Server の起動と停止は「systemd」によって管理されます。
mysqld_safe コマンドや System V 初期化スクリプトなどは不要になり、そもそもインストールされません。
mysqld_safeの代わりに「MYSQLD_OPTS」変数を使用する
CentOS7 の環境で MySQL Server のパスワードを紛失した、パスワードを忘れたなどトラブルが発生した場合は「MYSQL_OPTS」変数を利用して、システム構成ファイルを直接変更せずに MySQL Server を起動することができます。
ノーパスワードで MySQL Server(mysqld)を起動してパスワードを再設定する
以下、ノーパスワードで MySQL Server(mysqld)を起動してパスワードを再設定する手順です。
[root@cent07 ~]# systemctl start mysqld ← オプションを設定したら mysqld を起動します。
[root@cent07 ~]# systemctl status mysqld ← mysqldが起動していることを確認します。 ● mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 月 2017-10-23 20:37:02 JST; 4s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1654 ExecStart=/usr/sbin/mysqld –daemonize –pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 1637 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1659 (mysqld)
CGroup: /system.slice/mysqld.service
mq1659 /usr/sbin/mysqld –daemonize –pid-file=/var/run/mysqld/mysqld.pid –skip-grant-tab…
10月 23 20:37:00 cent07.localdomain systemd[1]: Starting MySQL Server…
10月 23 20:37:02 cent07.localdomain systemd[1]: Started MySQL Server.
MySQL に「ノーパスワード(no password)」でログインします。
[root@cent07 ~]# mysql -u root ← 「skip-grant-tables」のオプションで起動したのでノーパスワードでログインができます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.7.19 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
root のパスワードを変更します。
mysql> UPDATE mysql.user SET authentication_string = PASSWORD(‘xxxxxxxx’) WHERE User = ‘root’ AND Ho st = ‘localhost’; ← rootのパスワードを設定します。
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
[root@cent07 ~]# systemctl stop mysqld ← オプションを元に戻すために一度 mysqld を停止します。
[root@cent07 ~]# systemctl status mysqld ← mysqld が停止していることを確認します。
● mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead) since 月 2017-10-23 20:38:57 JST; 3s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1654 ExecStart=/usr/sbin/mysqld –daemonize –pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 1637 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1659 (code=exited, status=0/SUCCESS)
10月 23 20:37:00 cent07.localdomain systemd[1]: Starting MySQL Server…
10月 23 20:37:02 cent07.localdomain systemd[1]: Started MySQL Server.
10月 23 20:38:54 cent07.localdomain systemd[1]: Stopping MySQL Server…
10月 23 20:38:57 cent07.localdomain systemd[1]: Stopped MySQL Server.
[root@cent07 ~]# systemctl unset-environment MYSQLD_OPTS ← unset-environment でオプションを外します。
オプションを外したら、再度 MySQL Server を起動します。
[root@cent07 ~]# systemctl start mysqld ← mysqldを起動します。
[root@cent07 ~]# systemctl status mysqld ← mysqldの起動を確認します。 ● mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 月 2017-10-23 20:39:14 JST; 3s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1848 ExecStart=/usr/sbin/mysqld –daemonize –pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 1831 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1852 (mysqld)
CGroup: /system.slice/mysqld.service
mq1852 /usr/sbin/mysqld –daemonize –pid-file=/var/run/mysqld/mysqld.pid
10月 23 20:39:13 cent07.localdomain systemd[1]: Starting MySQL Server…
10月 23 20:39:14 cent07.localdomain systemd[1]: Started MySQL Server.
mysqlコマンドで、設定したパスワードでログインできることを確認します。
[root@cent07 ~]# mysql -u root -p
Enter password: ← パスワードを入力します。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.19 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
コメント