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 コンテナに変換する方法

推薦する

情報製品の読書リストのインタラクティブなデザインに関する考えと経験の共有

リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...

Vue Elementのテーブルコンポーネントをカプセル化する方法

Vue コンポーネントをカプセル化する場合でも、機能コンポーネントをクロスファンクショナルに使用しま...

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

参考までにWindowsにMySQLをインストールします。具体的な内容は次のとおりです。 1.まずM...

HTML と CSS を使用して絵文字付きのコメント ボックスを作成する方法のチュートリアル

絵文字付きの HTML コメント ボックス。絵文字は Json データを通じて読み込まれ、好みに応じ...

MySQL マスタースレーブステータスチェックの実装

1. AデータベースとBデータベースの同期ステータスを確認する次のコマンドを入力すると多くの情報が表...

dockerでopenGaussデータベースを構成する方法の詳細な説明

Windowsユーザー向けDocker で openGauss を使用するopenGaussイメージ...

HTML ウェブページのブラウザタイトルバーに小さなアイコンを表示する方法

この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...

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

この記事では、最新バージョンの MySQL データベース、つまり MySQL 5.7.17 圧縮バー...

Linux システムの最適化 (カーネルの最適化) に関するいくつかの提案

スワップを無効にするサーバーがデータベース サービスまたはメッセージ ミドルウェア サービスを実行し...

MySQL MHA のセットアップと切り替えに関するいくつかのエラー ログの概要

1: masterha_check_repl レプリカ セット エラー レプリケートが構成ファイルで...

Firefoxでリンクをクリックしたときに点線の枠線を削除する方法

今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...

JSはストップウォッチタイマーを実装します

この記事の例では、ストップウォッチタイマーを実装するためのJSの具体的なコードを参考までに共有してい...

トップナビゲーションバーメニューを作成するためのHTML+CSS

ナビゲーションバーの作成:技術要件: CS HTMLタグ達成目的:ナビゲーションバーメニューの作成コ...

Linuxのbasenameコマンドの使い方

01. コマンドの概要basename - ファイル名からディレクトリとサフィックスを削除しますba...

Linux で PCIe のバージョンと速度を確認する方法

PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...