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

推薦する

JavaScript におけるイベント バブリング メカニズムの詳細な分析

バブリングとは何ですか? DOM イベント フローには、イベント キャプチャ ステージ、ターゲット ...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

jQueryをベースにカルーセル効果を実現する

この記事では、カルーセルマップの効果を実現するためのjQueryの具体的なコードを参考までに共有しま...

IframeとFRAMEの違いの分析

1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...

Linux の MySQL でリモート接続を承認する方法

注意: 他のマシン (IP) は、承認なしではクライアント経由で MySQL データベースに接続でき...

MySQL での GROUP_CONCAT の使用例の分析

この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...

MySQL における int の最大値の詳細な説明

導入2日前に見た問題について詳細に書きます。バイトコンピューターがバイナリに基づいていることは誰もが...

Alibaba Cloud Centos7のインストールとSVNの設定

1. SVNサーバーをインストールする yum でサブバージョンをインストール2. SVNバージョン...

MySQL の自動増分 ID (主キー) が不足した場合の解決策

MySQL で使用される自動インクリメント ID には多くの種類があり、各自動インクリメント ID ...

MySQLの指定順序ソートクエリについての簡単な説明

最近、空港や駅でフライト情報を表示するものと似た大型スクリーンディスプレイのプロジェクトに取り組んで...

MySQLインデックスに関する重要な面接の質問をいくつか共有します

序文インデックスは、データベース内の 1 つ以上の列の値を並べ替え、データベースが効率的にデータを取...

jconsole を使用してリモート Tomcat サービスを監視する方法

JConsoleとはJConsole は Java 5 で導入されました。 JConsole は、コ...

Webpackプラグインを書いてnpmに公開するための80行のコード

1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...

ノードにおけるhttpモジュールの使用と実行プロセス

ノードにおけるhttpの役割は何ですか? httpモジュールの役割は、サーバーの作成と記述を支援する...