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 におけるマップマッピングの基本概念と一般的な方法

推薦する

Windows Server 2012 リモート デスクトップ ライセンス サーバーがライセンスを提供できず、リモート セッションが切断される

本日、会社の内部サーバーにログインしたところ、リモートアクセスができませんでした。エラー メッセージ...

CentOS仮想マシンの時刻を変更する方法

上はシステム時間、下はハードウェア時間です。ここでは変更を加えているので、同じくらいの速さになってい...

MySQLクエリ最適化プロセスを理解する

目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...

デザイン: 意志の強いデザイナー

<br />長年の専門的なアートデザイン教育を通じて「美とは何か」を学びましたが、「美を...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

MySQL スケジュールタスク (EVENT イベント) を詳細に設定する方法

目次1. イベントとは何ですか? 2. 「イベント」機能を有効にする1. 機能が有効になっているかど...

MySQL と接続関連のタイムアウトの詳細な概要

MySQL と接続関連のタイムアウト序文:今日、同僚から、データ量が多いときに MySQL データベ...

JavaScript 配列を走査する 5 つの方法

目次1. forループ: 基本的でシンプル2. forEach() メソッド: コールバック関数の使...

CSS3 で半透明の背景画像と不透明なコンテンツを実現する方法の例

以前のブログのログインページを作成していたときに、この問題に遭遇しました。突然、透明な背景画像と不透...

MySQL データベースの一般的な基本操作の分析 [データベースの作成、表示、変更、削除]

この記事では、例を使用して、MySQL データベースの一般的な基本操作について説明します。ご参考まで...

Nexus を使用して jar パッケージをプライベート サーバーに追加する方法

なぜ Nexus プライベート サーバーを構築する必要があるのでしょうか。その理由は非常に簡単です。...

MySQL で絵文字表現を挿入できない理由と解決策

失敗のシナリオMySQL データベースに絵文字表現を挿入するために JDBC を呼び出すと、例外ja...

テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要

この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...

15行のCSSコードがAppleデバイスをクラッシュさせる可能性があり、最新のiOS 12も例外ではない

たった15行のCSSでiPhoneがクラッシュするWire のセキュリティ研究者 Sabri Had...

MySQL での mysqladmin 日常管理コマンドの概要 (必読)

mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...