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

MySQL8.0でルートパスワードをリセットする方法

    MySQLルートパスワードを忘れたり紛失したりするという不幸な事態が発生した場合は、何らかの方法でパスワードを回復する方法が必要になります。知っておく必要があるのは、パスワードがユーザーテーブルに保存されていることです。これは、MySQL認証をバイパスする方法を見つけて、パスワードレコードを更新できるようにする必要があることを意味します。

    幸いなことに、簡単に達成できます。このチュートリアルでは、MySQL8.0バージョンでrootパスワードを回復またはリセットするプロセスについて説明します。

    MySQLのドキュメントによると、ルートMySQLパスワードをリセットする方法は2つあります。両方を確認します。

    –init-fileを使用してMySQLルートパスワードをリセット

    ルートパスワードをリセットする方法の1つは、ローカルファイルを作成してから、--init-fileを使用してMySQLサービスを開始することです。 示されているオプション。

    # vim /home/user/init-file.txt
    

    ファイルがmysqlユーザーによって読み取り可能であることを確認することが重要です。そのファイル内に以下を貼り付けます:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    上記の変更で「new_password 」と使用したいパスワードを入力します。

    次に、MySQLサービスが停止していることを確認します。次のことができます:

    # systemctl stop mysqld.service     # for distros using systemd 
    # /etc/init.d/mysqld stop           # for distros using init
    

    次に、以下を実行します:

    # mysqld --user=mysql --init-file=/home/user/init-file.txt --console
    

    これによりMySQLサービスが開始され、プロセス中に作成したinitファイルが実行されるため、rootユーザーのパスワードが更新されます。パスワードをリセットしたら、必ずファイルを削除してください。

    必ずサーバーを停止し、その後は通常どおりに起動してください。

    # systemctl stop mysqld.service        # for distros using systemd 
    # systemctl restart mysqld.service     # for distros using systemd 
    
    # /etc/init.d/mysqld stop              # for distros using init
    # /etc/init.d/mysqld restart           # for distros using init
    

    これで、新しいパスワードを使用してrootとしてMySQLサーバーに接続できるようになります。

    # mysql -u root -p
    

    –skip-grant-tablesを使用してMySQLルートパスワードをリセット

    2番目のオプションは、--skip-grant-tablesを使用してMySQLサービスを開始することです。 オプション。サービスがそのように開始されている間、すべてのユーザーがパスワードなしで接続できるため、これは安全性が低くなります。

    サーバーが起動している場合--skip-grant-tables--skip-networkingのオプション は自動的にアクティブ化されるため、リモート接続は利用できません。

    まず、MySQLサービスが停止していることを確認してください。

    # systemctl stop mysqld.service     # for distros using systemd 
    # /etc/init.d/mysqld stop           # for distros using init
    

    次に、次のオプションを使用してサービスを開始します。

    # mysqld --skip-grant-tables --user=mysql &
    

    その後、実行するだけでmysqlサーバーに接続できます。

    # mysql
    

    --skip-grant-tablesでサービスを開始すると、アカウント管理が無効になるため オプションの場合、助成金をリロードする必要があります。そうすれば、後でパスワードを変更できるようになります:

    # FLUSH PRIVILEGES;
    

    これで、次のクエリを実行してパスワードを更新できます。 「new_password」は、使用したい実際のパスワードに変更してください。

    # ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
    

    次に、MySQLサーバーを停止し、通常どおりに起動します。

    # systemctl stop mysqld.service        # for distros using systemd 
    # systemctl restart mysqld.service     # for distros using systemd 
    
    # /etc/init.d/mysqld stop              # for distros using init
    # /etc/init.d/mysqld restart           # for distros using init
    

    新しいパスワードで接続できるはずです。

    # mysql -u root -p
    

    これらの便利な次のMySQL関連の記事も読むことをお勧めします。

    1. MySQL 8をCentOS、RHEL、Fedoraにインストールする方法
    2. 15の便利なMySQLパフォーマンスチューニングと最適化のヒント
    3. Linux用の12のMySQLセキュリティプラクティス
    4. MySQLのパフォーマンスを監視するための4つの便利なコマンドラインツール
    5. MySQLデータベース管理コマンド
    結論

    この記事では、MySQL8.0サーバーの失われたrootパスワードをリセットする方法を学びました。プロセスが簡単だったと思います。


    1. 弱く型付けされたSYS_REFCURSORである変数の%ROWTYPEを宣言する方法は?

    2. 日付範囲によるSQLグループ化

    3. 準備されたPDOステートメントを使用してORDERBYパラメーターを設定するにはどうすればよいですか?

    4. 文字列を異なる列に分割する方法は?