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ファイルのインポートとエクスポートを実装します

推薦する

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

MySQL ストアドプロシージャの長所と短所の分析

MySQL バージョン 5.0 ではストアド プロシージャのサポートが開始されました。ストアド プロ...

Windows Server 2012 でファイル サーバーを構築するための詳細な手順

ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...

ZabbixはLinuxシステムサービスのプロセスを監視

Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

導入定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監...

XHTML+CSS Web ページ作成における美しいスタイルシートの適用

これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...

相対幅と絶対幅が競合する場合の HTML+CSS div ソリューション

相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

要素テーブルの多層ネスト表示の実践

複数の注文を含むリストが必要です。各注文は一意にすることも、複数の注文を結合することもできます。各注...

nginx のバージョン番号と WEB サーバー情報を隠すための解決策

Nginxはバージョン情報を隠すだけでなく、カスタムWebサーバー情報もサポートします。まずは最終的...

nginxリバースプロキシを介したデバッグコードの実装

背景現在、会社のプロジェクトは、フロントエンドとバックエンドが分離された方法で開発されています。新し...

Nginx ポート競合を解決するトラブルシューティング方法の例

問題の説明データ転送に Nginx を使用し、フロントエンドとバックエンドが分離された Spring...

Windows に Docker と docker-compose スイートをインストールするための詳細なチュートリアル

目次導入ダウンロードしてインストールする設定docker-composeをインストールする導入Doc...

Vue でコンポーネントを一括インポート、登録、使用する方法

序文コンポーネントは、非常に頻繁に使用されるものです。多くの人は、コンポーネントを 1 つのファイル...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...