sql >> データベース >  >> RDS >> Mysql

MySQLルートユーザーのパスワードをリセットする方法

    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.cnf
    nanoの使用に関する追加情報 テキストエディタについては、ガイドをご覧ください。

    パスワードフィールドを上記で入力した新しいパスワードに更新し、保存して、テキストエディタを終了します。

    最後に、新しいパスワードが機能することを確認するためにテストします。

    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

    1. プロプライエタリデータベースからオープンソースデータベースに移行するためのヒント

    2. ビジネスに適したデータベースを選択する方法

    3. MariaDBでのTIMESTAMPDIFF()のしくみ

    4. MySQLで空の値を許可する一意の制約