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

推薦する

Echatsチャートの大画面適応を実装する方法

目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...

CSS プロパティ display:flow-root 宣言を 1 つの記事でマスターする

zhangxinxu より https://www.zhangxinxu.com/wordpress...

期間限定フラッシュセール機能を実装するJavaScript

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

Momentsで写真を整理するためのCSSコード

まず、Moments を開いて、写真の数が異なるいくつかのレイアウトを確認するか、以下の例を参照して...

Vue の better-scroll コンポーネントを使用して水平スクロール機能を実現する

について最近、Vue を学習する過程で、基本的な知識の練習と強化を目的として、Qunar.com の...

エージェントを介したzabbix監視プロセスとポートの詳細なプロセス

環境の紹介オペレーティングシステム: Centos 7.4 Zabbix バージョン: zabbix...

静的ページと動的ページの実行メカニズムの説明

1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...

MySQLカバーインデックスの利点

一般的な提案は、WHERE 条件のインデックスを作成することですが、これは実際には一方的です。インデ...

CSS3は水平方向の中央揃え、垂直方向の中央揃え、水平方向と垂直方向の中央揃えのサンプルコードを実装しています。

フロントエンドの担当者であれば、面接でも仕事中でも、「CSS を使用して中央揃えにする」という効果に...

SQL重複排除方法の概要

SQL を使用してデータを抽出する場合、テーブル内で重複した値に遭遇することがよくあります。たとえ...

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデ...

CSS3のbox-shadowプロパティの使い方の詳細な例

CSS には多くの属性があります。特に複数の値を設定する必要がある属性は、長期間使用しないと忘れられ...

Windows 64 ビットに MySQL を再インストールするチュートリアル (Zip バージョン、解凍バージョンの MySQL インストール)

MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...