MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明

MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明

環境:

[root@centos7 ~]# uname -r
3.10.0-514.el7.x86_64
[root@centos7 ~]# cat /etc/redhat-release 
CentOS Linux リリース 7.3.1611 (コア) 
[root@centos7 ~]# rpm -qa mysql
[root@centos7 ~]# rpm -qa |grep mysql
mysql-コミュニティ-共通-5.7.26-1.el7.x86_64
mysql-コミュニティクライアント-5.7.26-1.el7.x86_64
mysql57-コミュニティリリース-el7-11.noarch
mysql-コミュニティサーバー-5.7.26-1.el7.x86_64
mysql-コミュニティライブラリ-5.7.26-1.el7.x86_64
mysql-コミュニティ-ライブラリ-compat-5.7.26-1.el7.x86_64

ログイン中にエラーが発生しました:

[root@centos7 ~]# mysql -u root -p
パスワードを入力してください: 
エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード使用: NO)

パスワードを忘れました(インストール後にパスワードがわからない場合と同じです)

インターネット上では、MySQL のパスワードは空のパスワードだと言う人がいます。実際、MySQL バージョン 5.7 以降では、パスワードは空のパスワードではなくなりました。

新しくインストールされた場合は、mysqlログファイルで見つけることができます。

grep '一時パスワード' /var/log/mysqld.log

補足:mysqlから提供されたパスワードが見つかった場合は、

mysqladmin -u root -p 'mysql によって提供されたパスワード' password '新しいパスワード'

mysql パスワードを直接変更しますが、この方法にはセキュリティ上のリスクがあります。結局、パスワードはコマンドラインに表示されます。推奨されませんが、反対ではありません。

忘れた場合は、次のように変更してください。

1. /etc/my.cnf を変更し、skip-grant-tables を追加します。

[root@centos7 ~]# vim /etc/my.cnf

空白の位置に追加し、保存して終了します。

[mysqld]
     
名前解決をスキップ
スキップ許可テーブル
[root@centos7 ~]# systemctl mysqldを再起動します

2. 空のパスワードで直接 mysql を入力します。

[root@centos7 ~]# mysql -u root -p
パスワードを入力してください: (これは空のパスワードです。Enter キーを押してください)
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは2です
サーバーバージョン: 5.7.26 MySQL コミュニティサーバー (GPL)
 
Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。
 
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
 
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
 
マイSQL>

mysql データベースを入力します。

mysql> mysqlを使用する
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。
 
データベースが変更されました
マイSQL>

ここでの mysql は変更されていませんが、データベースの場所が変更されています。

3. パスワードを変更します。UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';

mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';
クエリは正常、1 行が影響を受け、1 つの警告 (0.00 秒)
一致した行: 1 変更された行: 1 警告: 1
 
マイSQL> 
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
 
マイSQL>

4 /etc/my.cnfに戻ります

#skip-grant-tables をコメントアウトする

[root@centos7 ~]# vim /etc/my.cnf
[mysqld]
     
名前解決をスキップ
#許可テーブルをスキップする
[root@centos7 ~]# systemctl mysqldを再起動します

5. 新しいパスワードで再度mysqlを入力します。

[root@centos7 ~]# mysql -u root -p 
パスワードを入力してください: (前のデモの新しいパスワード)
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは6です
サーバーバージョン: 5.7.26
 
Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。
 
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
 
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
 
マイSQL>

6. ルート パスワードを変更します。 alter user 'root'@'localhost' identified by 'password';

ユーザーパスワードを変更します。

'123456' によって識別されるユーザー testuser を変更します。

現在ログインしているユーザーを変更する

'123456' によって識別される USER USER() を変更します。
mysql> 'Linuxpassword!@#' で識別されるユーザー user() を変更します。
エラー 1819 (HY000): パスワードが現在のポリシー要件を満たしていません
mysql> 'LINUX123password!@#' で識別される user() を変更します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
 
マイSQL> 

パスワードの複雑さには大きな要件があることがわかります。

7. 変更が完了したら、mysqlの操作を続行できます。

mysql> データベースを表示します。
+--------------------+
| データベース |
+--------------------+
| 情報スキーマ |
|mysql |
| パフォーマンススキーマ |
|システム|
+--------------------+
セット内の 4 行 (0.00 秒)
 
mysql>終了
さよなら

以上が、編集者が紹介したMySQL 5.7のパスワードを忘れた場合の解決方法の詳細な説明です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Linux 上の MySQL 5.7 でパスワードを忘れる問題を解決する
  • MySQL 5.7 および MySQL 8.0 でルートパスワードを変更する方法の概要
  • MySQL 5.7.20 解凍版のインストールとルートパスワードの変更に関するチュートリアル
  • MySQL 5.7.21 のインストールとパスワード設定のチュートリアル
  • Centos7.3 で mysql5.7.18 をインストールして初期パスワードを変更する方法
  • mysql5.7.18のインストールと初期パスワードの変更方法
  • MySQL 5.7.18 でパスワードを変更する方法
  • MAC で Mysql5.7.10 のルートパスワードを変更する方法
  • Mysql5.7 のルートパスワードを忘れた場合の対処法 (シンプルで効果的な方法)
  • Mysql5.7.14 インストールと設定方法操作グラフィックチュートリアル(パスワード問題解決)

<<:  dig/nslookup コマンドを使用して DNS 解決手順を表示する方法

>>:  ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

推薦する

ウェブページの表の分割線を削除する方法

<br />Web テーブルの分割線を削除する方法。実際、上記の 3 つの表はいずれも ...

MySQL分離の使用手順を読む

現在のトランザクションはどの履歴バージョンを読み取ることができますか?読み取りビューは、トランザクシ...

Vue3 を使用してアップロード コンポーネントを実装するためのサンプル コード

目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...

vue+drf+サードパーティのスライディング検証コードアクセスの実装

目次1. 背景2. 検証プロセス3. 検証を作成する4. フロントエンドコード4.1 コアjsファイ...

js の toString メソッドの 3 つの機能

目次1. toStringメソッドの3つの機能2. オブジェクトを表す文字列を返す3. カスタム t...

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

Nginx Linux のインストールと展開の詳細なチュートリアル

1. Nginx の紹介Nginxは負荷分散やリバースプロキシにも使えるWebサーバーです。現在最も...

MySQLデータベーステーブルの容量を確認する方法の例

この記事では、MySQL のデータベース テーブルの容量を確認するためのコマンド ステートメントを紹...

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

MySQL カーソルの定義と使用法

カーソルの作成まず、MySql でデータ テーブルを作成します。 存在しない場合はテーブルを作成 `...

MySQL でシンプルな検索エンジンを実装するためのサンプルコード

目次序文導入ngram全文パーサー全文インデックスを作成する検索方法1. 自然言語検索(自然言語モー...

CSSは、他のレイヤーを変更せずに、多層ネスト構造の最外層を回転させる効果を実現します。

次のようなシナリオがあります。円形のコンテナで、最も外側のコンテナの背景が円弧になっています。内側の...

CSS で overflow-y: visible; が機能しない理由の分析と解決

シナリオ最近の要件は、モバイル デバイス用の h5 ページです。これには、選択可能なカードの行が必要...

Docker-compose インストール db2 データベース操作

db2 データベースをホストマシンに直接インストールするのは面倒で、ユーザーや権限を巻き込むのも不便...