MySQL ログイン エラーを解決する: 'ユーザー 'root'@'localhost' へのアクセスが拒否されました

MySQL ログイン エラーを解決する: 'ユーザー 'root'@'localhost' へのアクセスが拒否されました

まず、コマンドラインまたはワークベンチを使用して MySQL にログインできず、「ユーザー 'root'@'localhost' のアクセスが拒否されました」というメッセージが表示される理由がわかりません。
データベースを数回アンインストールして再インストールしても機能しませんでした。データが適切にクリーンアップされていないようです。解決プロセス中に遭遇した落とし穴はここに記録され、共有されます。

有効な操作記録:

1. まず、MySQL にログインしてユーザー テーブルを表示するための権限をスキップします。

mysqlサービスを停止します~ $ sudo service mysql stop

MySQL~$ sudo mysqld_safe --skip-grant-tables &

知らせ:

UNIXソケットファイル用のmysqld_safeディレクトリ「/var/run/mysqld」が存在しないというメッセージが表示される場合があります。

解決策: (試してみたところ、sudo を追加する必要があることがわかりました)

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

上記のセーフモードを再度実行してmysql ~$ sudo mysqld_safe --skip-grant-tables &

今回はプロンプト文に、 mysqld_safe Staring mysqld deamon with database from /var/lib/mysql表示されます。

今回はパスワードなしでログインできます: mysql -u root Enterキーを押してログインします

mysql.user テーブルをクエリする SQL ステートメントは次のとおりです。

写真を追加(後ほど追加予定)

誰かがこの方法を提案しましたが、私は試しませんでした。

ディストリビューションに応じて、/etc/my.cnf または /etc/mysql/my.cnf を開いて編集します。
[mysqld]の下にskip-grant-tablesを追加する

2. ユーザーのプラグインがsocket_pluginであることがわかり、mysql_native_passwordに変更されました

ルートのプラグイン権限を変更します。

mysql.user を更新し、authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' を設定し、user='root' にします。
権限をフラッシュします。
やめる;

(ここでの変更は正しく行う必要があります。作者のように、プラグインの内容を不用意に 1 文字少なく変更し、次のようなトラブルが発生しないように注意してください)

3. ユーザーテーブルには他のユーザーが存在します。ルートはログインできませんが、他のユーザーではログインできます。検索した結果、以下の有効な操作が見つかりました。

mysql のインストールディレクトリには通常、/etc/mysql に debain.cnf ファイルがあり、ユーザー名とパスワードが含まれています。このファイルを使用してログインし、パスワードをコピーします。その後、ユーザーテーブルルートのプラグインを再度変更できます。操作は上記と同じです。

mysql サービスを再起動します ( sudo service mysql restart;

root ユーザーとしてログインできます。

参考ブログ:

MySQL エラー 1698 (28000) エラー https://www.jb51.net/article/117566.htm

mysql 現在使用されている設定ファイル my.cnf を表示する方法 https://www.jb51.net/article/110395.htm

linux -- Ubuntu で mysql ログイン名とパスワードを表示および変更し、phpmyadmin をインストールします https://www.jb51.net/article/174925.htm

要約する

上記は、MySQL ログイン エラー「ユーザー ''root''@''localhost'' のアクセスが拒否されました」を解決するための編集者による紹介です。皆様のお役に立てれば幸いです。

以下もご興味があるかもしれません:
  • Win10 での MySQL 8.0 ログインでユーザー 'root'@'localhost' のアクセスが拒否される (パスワード使用: YES) 問題の解決方法
  • LinuxにMySQLデータベース5.6のソースコードをインストールし、ログインユーザーのパスワードを変更する
  • Node.js+Express+MySql でユーザーログインと登録機能を実現
  • ノードとエクスプレスを使用してMySQLに接続し、ログインと登録コードを実装します。
  • MySQL 5.1 のパスワードを変更し、MySQL データベースにリモートでログインする方法

<<:  アバター変更機能を実装するJavaScript

>>:  jar パッケージを Docker コンテナに変換する方法

推薦する

Linuxでのソフトウェア(ライブラリ)の更新コマンドの詳しい説明

Ubuntu サーバーにパッケージをインストールする場合、sudo apt-get install ...

ウェブ開発者はIE7とIE8の共存を懸念している

今日、IE8 をインストールしました。ダウンロードするために Microsoft の Web サイト...

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

この記事は、参考のためにMySQL 8.0.19のインストールと設定のグラフィックチュートリアルを記...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

IE6 フォントを定義できません: 13px サイズは無効です。IE6 は自動的に大きいフォント ソリューションを表示します。

数日前、Web ページのモジュールを調整していたとき、ページのフォント サイズを 13px に設定し...

CentOS7 で MySQL データベースにリモート接続できない理由と解決策

序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...

Docker で Portainer ビジュアル インターフェースを構築するための詳細な手順

前回述べた問題を解決するために、オンラインで検索したところ、非常に優れたビジュアル インターフェース...

dockerでrabbitmqをインストールすると管理ページに入れなくなる問題

1. 環境整備Tencent Cloud Server CENTOS 7 バージョンDockerコン...

SQL で行の最大値または最小値を取得する方法

元データと対象データSQL文を実装する(最大) 選択 店、 月、 最大(dz,fz,sp) が最大値...

Html+CSS フローティング広告ストリップの実装

1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...

mysql 8.0.20 winx64.zip 圧縮版のインストールと設定方法のグラフィックチュートリアル

mysql 8.0.20 winx64.zip圧縮版のインストールチュートリアルは以下のように記録さ...

ウェブデザインにおけるインタラクション: ページングの問題に関する簡単な説明

機能: 前のページまたは次のページにジャンプします。要素: ページングの基本要素は、前のページ + ...

背景属性の8つの属性値の詳細解説(面接の質問)

CSSの背景プロパティの値背景色背景画像背景繰り返し背景位置背景添付複合プロパティ: 背景: ba...

Vue3 での Teleport の使用に関する詳細な説明

目次テレポートの目的テレポートの仕組みこの記事では、以下の内容を取り上げます。テレポートの目的テレポ...

SQL文でのgroup byの使用について簡単に説明します

1. 概要Group by は、by の後の規則に従ってデータをグループ化することを意味します。いわ...