ServerPilotは、サーバー上のデータベースを管理するようにMySQLを構成します。通常、 rootとしてSSHにログインした場合 ユーザーの場合、MySQLにアクセスするには、コマンドライン(SSH)プロンプトで次のように入力するだけです。
mysql
このコマンドは、MySQL rootを含むファイルを自動的に参照します。 ユーザーのMySQLパスワード。入力する必要はありません。MySQLのルートパスワードは次のファイルに含まれています:
/root/.my.cnf
何らかの理由でそのパスワードを変更する必要がある場合は、いくつかの手順を実行する必要があります。ここには2つの異なるプロセスがあることに注意してください。1つはルートMySQLパスワードが現在機能している状況用で、もう1つは機能していないルートMySQLパスワード用です。
注:MySQLエラーログはMySQLの問題を見つけるのに適した場所であり、次の場所にあります:
/var/log/mysql/error.log警告!このようなタスクを実行する前に、サーバーのスナップショットを作成することをお勧めします。
有効なMySQLルートパスワードの変更
このセクションでは、機能しているMySQLルートパスワードの変更について説明します。つまり、 rootとしてMySQLにログインできます。 mysqlと入力するだけでユーザー SSHプロンプトで。これらの手順に従うと、このプロセスのダウンタイムは発生しません。
rootとしてSSHにログインします ユーザーの場合、次のように入力してMySQLにログインします。
mysql
MySQLプロンプトで、次のように入力しますが、 put-your-new-password-hereを置き換えます。 使用したい実際のパスワードを使用します。新しいパスワードを一重引用符で囲む必要があります。次の手順でパスワードをファイルに入れる必要があるため、パスワードをメモしておいてください。
SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');
次のように入力してMySQLを終了します:
quit
次に、MySQL rootを含むファイルを更新する必要があります rootとしてサーバーにSSH接続できるユーザーのパスワード mysqlを実行します パスワードを入力せずにコマンドを実行します。
sudo nano /root/.my.cnfnanoの使用に関する追加情報 テキストエディタについては、ガイドをご覧ください。
パスワードフィールドを上記で入力した新しいパスワードに更新し、保存して、テキストエディタを終了します。
最後に、新しいパスワードが機能することを確認するためにテストします。
mysql
すべて設定しました!
紛失または機能しないMySQLルートパスワードの変更
このセクションでは、このエラーを受け取ったときにMySQLへのルートアクセスを回復する方法について説明します。
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)警告!このプロセスにより、MySQLが短期間オフラインになります。これは、ユーザーへの影響が最も少ないオフピーク時に実行することをお勧めします。
rootとしてSSH経由でサーバーにログインします ユーザー、および次のように入力してMySQLを停止します:
sudo service mysql stop
次に、次のコマンドを実行します。
sudo test ! -e /var/run/mysqld && sudo mkdir -p /var/run/mysqld && sudo chown mysql:mysql /var/run/mysqld
出力は返されません。次のように入力して、MySQLを特別なモードで起動します。
sudo mysqld --skip-grant-tables --skip-networking &
表示される数値は異なりますが、出力は以下のようになります。
sudo mysqld --skip-grant-tables --skip-networking & [1] 14744
その後、標準のSSHプロンプトに戻ります。ここで、次のように入力してMySQLにログインします。
mysql
パスワードの入力を求められることはなく、次のようになります。
~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.25-0ubuntu0.16.04.2-log (Ubuntu) Copyright (c) 2000, 2019, 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>
パスワードを変更できる次のコマンドを発行します。
FLUSH PRIVILEGES;
どちらが得られますか:
Query OK, 0 rows affected (0.00 sec)
次に、 put-your-new-password-here を変更して、実際のパスワードをリセットします。 実際のパスワードに。 /root/.my.cnf にパスワードを入力する必要があるため、設定したパスワードをメモしてください。 完了したらファイルを作成し、新しいパスワードを一重引用符で囲んでください。
SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');
次のような通知を受け取る必要があります:
Query OK, 0 rows affected, 1 warning (0.00 sec)
次のように入力してMySQLを終了します:
quit
次に、次のコマンドを入力します。
sudo killall mysqld
出力は返されません。これで、MySQLを通常どおり起動します:
sudo service mysql start
最後に、パスワードを /root/.my.cnfにあるものから変更した場合 、そのファイルを更新する必要があります。同じ値を使用した場合は、次の手順を実行する必要はありません。
sudo nano /root/.my.cnf
そこでパスワードフィールドを更新し、保存してテキストエディタを終了します。
これで、 rootとしてMySQLに正常にログインできるようになります。 次のコマンドを入力してユーザーを入力します:
mysql