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

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

今日、WordPress がデータベースに接続できないことがわかりました。ウィンドウ サーバーにログインしたところ、すべてのサービスが正常に実行されていることがわかりました。

root アカウントを使用して MySQL データベースにログインすると、パスワードが一致しないというメッセージが表示されます。突然、サーバーがSQLインジェクション攻撃を受けたかもしれないことに気付きました...

事故の原因やその後の対策については、機会があればお話ししたいと思います。ここでは主に、mysql ユーザーのパスワードをリセットする手順について説明します。

ルート パスワードをリセットする ルート パスワードを忘れた場合は、mysql セーフ モードに入り、ルート パスワードをリセットできます。

1. MySQLサービスを停止する

コマンド プロンプト ウィンドウを開き、net stop mysql と入力して MySQL サービスをシャットダウンします。

C:\Users\Administrator>net stop mysql57
MySQL57 サービスが停止しています。
MySQL57 サービスが正常に停止されました。

↑ サービス名は必ずしもmysqlである必要はありません。たとえば、私の場合はmysql57で、57はバージョン番号5.7を表します。

もちろん、コンピュータの管理パネルから MySQL サービスをシャットダウンすることもできます。

2. binディレクトリに切り替える

コマンド プロンプト ウィンドウで、cd コマンドを使用して、MySQL インストール ディレクトリの下の bin ディレクトリに切り替えます。

C:\ユーザー\管理者>
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
C:\Program Files\MySQL\MySQL Server 5.7\bin>

↑ デフォルトのインストールディレクトリは C:\Program Files\MySQL\MySQL Server です

3. セーフモードに入る

権限チェックをスキップして mysql を起動するには、bin ディレクトリでmysqld --skip-grant-tablesと入力します。

my.ini ファイルを設定している場合は、それをインポートする必要があります: mysqld --defaults-file="../my.ini" --skip-grant-tables

[mysqld]

ベースディレクトリ = "C:\ProgramData\MySQL\MySQL Server 5.7"
データディレクトリ = "C:\ProgramData\MySQL\MySQL Server 5.7\Data"

↑my.iniファイルでデータ保存パスを指定しました。設定ファイルを導入しないと、No such file or directory というエラーが出ます。

4. アカウントパスワードをリセットする

別のコマンド プロンプト ウィンドウを開き (セーフ モード ウィンドウを閉じないでください)、mysql\bin ディレクトリに切り替えて、mysql と入力し、権限の検証をスキップしてデータベースに接続します。

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql
サーバーバージョン: 5.7.16 MySQL コミュニティサーバー (GPL)
Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
マイSQL>

↑接続パラメータも指定できます。mysql -u <ユーザー名> -p <パスワード> -h <接続アドレス> -P <ポート番号> -D <データベース>

update mysql.user set authentication_string="" where user="root"; を実行して、root ユーザーのパスワード (5.7 より前のパスワード フィールド) をリセットします。

mysql> mysql.user を更新し、authentication_string="" を設定します。user="root" です。
クエリは正常、1 行が影響を受けました (0.00 秒)

mysql> mysql.user\G から user,authentication_string を選択します
************************** 1. 行 ****************************
         ユーザー: ルート
認証文字列:
************************** 2. 行 ****************************
         ユーザー:mysql.sys
認証文字列: *これはここで使用できる有効なパスワードではありません

セット内の 2 行 (0.00 秒)

↑ ルートユーザーのauthentication_stringフィールドがクリアされました

5. 権限テーブルを更新する

権限テーブルを更新するには、flush privileges; コマンドを実行します。パスワードはリセットされました。終了するには quit と入力します。

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.02 秒)
mysql>終了
さよなら

すべてのコマンド プロンプト ウィンドウを閉じ、タスク マネージャーを使用して mysqld.exe プロセスを終了します。 MySQL サービスを再起動すると、ルート アカウントに直接ログインできるようになります。

ルートパスワードを変更する

セキュリティ上の理由から、ルート パスワードは空にしないでください。パスワードをリセットした後、新しいパスワードを設定する必要があります。

方法1: パスワードを設定する

SET PASSWORD FOR "username"=PASSWORD("new password");

root として mysql にログインし、set password コマンドを使用してパスワードを変更します。

mysql> root@localhost のパスワードを設定する = password("pswd");
クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒)

方法 2: mysqladmin

mysqladmin -u "username" -p password "new password"

命名を実行すると、元のパスワードの入力を求められます。正しく入力した後、変更できます。

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqladmin -u root -p パスワード pswd
パスワードを入力してください: ****

mysqladmin: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
警告: パスワードはプレーンテキストでサーバーに送信されるため、パスワードの安全性を確保するために SSL 接続を使用してください。

方法3: テーブルの更新

UPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";

ルート パスワードをリセットするときに、デフォルトのパスワードを設定することもできます。ただし、パスワードはプレーンテキストにすることはできず、password() 関数を使用して暗号化する必要があります。

mysql> mysql.user を更新し、authentication_string=password("pswd") を設定します。user="root" です。
クエリは正常、1 行が影響を受け、1 つの警告 (0.00 秒)

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

要約する

上記は、Windows で MySQL のルート パスワードをリセットする方法に関するこの記事の内容のすべてです。皆様のお役に立てれば幸いです。興味のある方は引き続きこのサイトを参照してください:

MySQLデータベース設計:Pythonを使ったスキーマ操作方法の詳しい解説

MySQL の instr を使用したファジー クエリ メソッドの紹介

MySQL での or ステートメントの使用例

不備がありましたら、メッセージを残してご指摘ください。このサイトをサポートしてくれた友人たちに感謝します!

以下もご興味があるかもしれません:
  • MySQL パスワードを忘れた場合はどうすればいいですか? MySQL ルートパスワードをリセットする方法
  • Mysql 5.7 でルート パスワードを忘れた場合やパスワードをリセットする場合の詳細な方法
  • mysql8.0.12 でルートパスワードをリセットする方法
  • Linux システムで MySQL のルート パスワードをリセットする
  • MySQL データベースのルート ユーザーのパスワードを忘れた場合にリセットする方法 [グラフィック]
  • Windows で MySQL のルート パスワードを忘れた場合にリセットする方法
  • mysql8でルートユーザーのパスワードをリセットする手順を完了します
  • MySQL ルート パスワードをリセットするときに発生する「不明な列 'password'」問題を解決する方法
  • MySQLのルートパスワードをリセットする最も簡単な方法
  • MySql のルートパスワードのリセットと失敗の実例

<<:  Linux での sshd サービスとサービス管理コマンドの詳細な説明

>>:  ネイティブ js で呼び出し、適用、バインドを実装する方法

推薦する

Windows2008 64 ビット システムでの MySQL 5.7 グリーン バージョンのインストール チュートリアル

序文この記事では、MySQL 5.7 グリーン バージョンのインストール チュートリアルを紹介します...

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

画像ボタンをフォームのリセットボタンとして使用する方法

フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...

Zabbix WEB 監視実装プロセス図

Zabbix独自のWEBインターフェースを例に、Web監視の設定を行います。環境: zabbix4....

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

Dockerでnginxを実行し、ローカルディレクトリをイメージにマウントする方法

1 hupからイメージを取得する docker プル nginx 2 マウントするディレクトリを作成...

初心者がdockerにmysqlをインストールするときに遭遇するさまざまな問題

序文最近、パソコンのシャットダウンに時間がかかることが多く、強制的にシャットダウンするには電源ボタン...

NginxはLua+Redisを使用してIPを動的にブロックします

1. 背景日常的なウェブサイトのメンテナンスでは、このような要件に頻繁に遭遇します。特定のクローラー...

Oracle VM VirtualBox の CentOS7 オペレーティング システムのインストール チュートリアル図

目次インストール手順環境設定実行構成インストール手順ダウンロードアドレス: バージョン6.0 最初に...

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

JavaScript クリップボードの使用法の詳細な説明

(1)はじめに: clipboard.js は、テキストをクリップボードにコピーする機能を実装する軽...

Faint: 「Web2.0 を使用して標準に準拠したページを作成する」

今日、ある人がウェブサイト開発プロジェクトについて話をしてくれました。具体的な要件について話すと、「...

CSS の優先順位に関する詳細な紹介

CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...