MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

展開環境:

インストールバージョン Red Hat Cent 7.0

MYSQL バージョン 8.0.2.0

デプロイメントが成功した後、失敗が発生します。

1. MYSQL サービスを正常に起動した後、Linux で root アカウントとパスワードを入力できません。

2. /etc/my.cnf 設定ファイルに skip-grant-table を追加すると、通常どおりログインできますが、ユーザーを作成したり、その他の操作を実行したりすることはできません。

要約すれば:

mysql を入力したいのですが、複数のコマンドを実行できず、複数のコマンドを実行した後に mysql を入力することもできず、無限ループに陥ります。

掘削段階:

インターネットで多くの方法を見つけました。まず、skip-grant-table を追加します。次に、権限テーブルを更新し、サービスを再起動し、パスワードなしで root としてログインし、root パスワードを変更して、権限テーブルを再度更新します。いろいろな方法を試しましたが、どれもうまくいきませんでした。ルートリンクを変更するのは常に間違っています。

MySQL バージョン 8.0 以上のパスワード ポリシーと変更構文が間違っていることに気付きました。

操作を繰り返します:

#vim /etc/my.cnf

【mysql】

skip-grant-tableを追加

#systemctl mysqld.service を停止します
#systemctl mysqld.service を起動します
#mysql –u ルート

[Enterキーを押して入力してください]

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
mysql> ユーザー 'root'@'localhost' を変更して 'MyNewPass' によって識別されます。
エラー 1819 (HY000): パスワードが現在のポリシー要件を満たしていません
mysql> ユーザー 'root'@'localhost' を変更して 'MyNewPass@123' によって識別されます。
エラー 1396 (HY000): 'root'@'localhost' に対する ALTER USER 操作が失敗しました
mysql> ユーザー 'root'@'%' を変更し、 'MyNewPass@123' によって識別されます。

[MySQL 8.0 以降のパスワード ポリシーの制限では、大文字と小文字に加えて、数字と特殊記号を使用する必要があります。以前は、root パスワードを変更した先人たちを参考にして、mysqladmin、set、update を使用しました。記事の最後に紹介があります。

クエリは正常、影響を受けた行は 0 行 (0.05 秒)

終了し、Skip-grant-tableステートメントを削除して、データベースを再起動します。

[root@localhost ~]# vim /etc/my.cnf [削除省略]
[root@localhost ~]# systemctl stopmysqld.service
[root@localhost ~]# systemctl startmysqld.service
[root@localhost ~]# mysql -uroot –p
mysql> ユーザー dbadmin@localhost を作成します 
 -> 'pwd123' によって識別されます。
エラー 1819 (HY000): パスワードが現在のポリシー要件を満たしていません
mysql> ユーザー dbadmin@localhost を作成します 
 -> 'Pwd123' によって識別されます。
エラー 1819 (HY000): パスワードが現在のポリシー要件を満たしていません
mysql> ユーザー dbadmin@localhost を作成します 
 -> 'Pwd@123' によって識別されます。
エラー 1819 (HY000): パスワードが現在のポリシー要件を満たしていません
mysql> ユーザー dbadmin@localhost を作成します 
 -> 'MyNewPass@123' によって識別されます。
クエリは正常、影響を受けた行は 0 行 (0.10 秒)

[ユーザーは通常どおり作成できますが、パスワードのセキュリティにはさらに高度な複雑さが必要です]

次に、リモート接続に SQL ツールを使用します。ここでは、リモート接続に SQLyog を使用します。

一般的に、パスワードが正しい場合でも、ROOT ユーザーのアカウントとパスワードを使用して直接接続することはできません。

MYSQL 8.0 で新しくmysql_native_password関数が追加されました。この関数のパスワードを変更することでリモート接続が可能になります。

2.1 まず、ROOTユーザーのnative_passwordパスワードを変更することができます

mysql> ALTER USER 'root'@'%' は、'MyPass@123' によって mysql_native_password で識別されます。
クエリは正常、影響を受けた行は 0 行 (0.15 秒) 

2.2 次に、新しく追加されたユーザーにルートユーザーとしてログインし、認証してからリモートで接続します。

mysql> 'super'@'%' というユーザーを作成し、'MyPass@123' で識別します。
クエリは正常、影響を受けた行は 0 行 (0.10 秒)
クエリは正常です。行数は 0 です。affe mysql> GRANT ALLON *.* TO 'super'@'%' WITH GRANT OPTION;
クエリは正常、影響を受けた行は 0 行 (0.10 秒)
mysql> 権限をフラッシュします。
クエリは正常、0 行が影響を受けました (0.00 秒) 終了しました (0.01 秒)
mysql> ALTER USER 'super'@'%' IDENTIFIEDWITH mysql_native_password BY 'MyPass@123';
クエリは正常、影響を受けた行は 0 行 (0.10 秒) 

注意: mysql_native_passwdパスワードを変更することは、ユーザーの元のパスワードを変更することと同じです。 MYSQL 8.0 では主にmysql-native_passwdが使用されるため、シェル インターフェースからログインする場合は注意が必要です。

ps: MySQLのルートパスワードを変更するさまざまな方法を見てみましょう

Navicat for MySQL で SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); を実行するだけです。

方法1: SET PASSWORDコマンドを使用する

mysql -u ルート
  mysql> 'root'@'localhost' のパスワードを設定 = PASSWORD('newpass');

方法 2: mysqladmin を使用する

mysqladmin -u root password "newpass"

ルートパスワードが設定されている場合は、次の方法を使用します

mysqladmin -u root password oldpass "newpass"

方法3: UPDATEを使用してユーザーテーブルを直接編集する

mysql -u ルート
  mysql> mysql を使用します。
  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
  mysql> 権限をフラッシュします。

ルートパスワードを紛失した場合は、

mysqld_safe --skip-grant-tables&
  mysql -u ルートmysql
  mysql> UPDATE user SET password=PASSWORD("新しいパスワード") WHERE user='root';
  mysql> 権限をフラッシュします。

要約する

上記は、MySql8.0 以降のバージョンの ROOT パスワードを正しく変更するために紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • mysql8.0.11をインストールしてrootパスワードを変更し、navicat for mysqlに接続するアイデアの詳細な説明
  • MySQL 8.0 をインストールした後、初めてログインするときにパスワードを変更する問題を解決する
  • MySQL 5.7 および MySQL 8.0 でルートパスワードを変更する方法の概要
  • MySQL 8.0.19 winx64 インストールチュートリアルと Windows 10 での初期パスワードの変更
  • MySQL 8.0.12 インストール設定方法とパスワード変更
  • MySQL 8.0.15 のインストールと設定のグラフィックチュートリアルと Linux でのパスワード変更
  • mysql 8.0.16 winx64 および Linux でルート ユーザーのパスワードを変更する方法
  • Windows 7 で MySQL 8.0.16 をインストールして使用する場合、パスワードの変更と Navicat への接続に関する問題が発生する
  • mysql8.0 パスワードを忘れた場合の修正とネットコマンドのサービス名が無効になる問題
  • MySQL 8.0 でパスワードを変更する正しい方法

<<:  Nginx タイムアウト設定の詳細な説明

>>:  ReactはExcelファイルのインポートとエクスポートを実装します

推薦する

リストループスクロールを実現するための HTML+CSS+JavaScript サンプルコード

説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...

MySQL 5.6.22 のインストールと設定方法のグラフィックチュートリアル

このチュートリアルでは、MySQL5.6.22のインストールと設定方法の具体的なコードを参考までに共...

JS 内の Json 文字列 + Cookie + ローカルストレージ

目次1.Json文字列1.1Json構文1.2 例2. クッキー2.1 使い方は? 3. ローカルス...

ウェブデザインで注意すべき検索最適化の知識

1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...

css n番目から始まるすべての要素を取得する

具体的なコードは次のとおりです。 <div id="ボックス"> &...

Zabbix ベースの Jenkins プロセス監視の詳細な説明

1. 監視アーキテクチャ図 2. 実装のアイデアJenkins に Metrics プラグインをイン...

Tik Tok サブスクリプション ボタンのアニメーション効果を実現する CSS

少し前にTik Tokを見ていて、フォローするときのボタンアニメーションがとても美しいと思ったのと、...

mysql バックアップ スクリプトを作成し、7 日間保存します。

スクリプトの要件: MySQL データベースを毎日バックアップし、スクリプトを 7 日間保存します。...

データ構造 - ツリー (III): 多方向検索ツリー B ツリー、B+ ツリー

多方向探索ツリー完全二分木の高さ: O(log2N)、ここで2は対数完全なM方向探索木の高さ: O(...

MySQL 5.7 のユニオンオール使用法のブラックテクノロジーを 5 分で学ぶ

MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...

Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明

目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...

HTML の iframe と frame の違いを例を使って説明します

プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...

VirtualBox6上のCentOS7で静的IPを設定する方法と注意点

VirtualBox をインストールした後、CentOS 7 をインストールします。ここでは詳細には...

Vue 3.0 カスタムディレクティブの使い方

目次1. カスタム指示1. グローバルカスタム指示を登録する2. グローバルカスタム指示を使用する3...