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

推薦する

mysql-8.0.17-winx64 のデプロイメント方法

1. 公式サイトからmysql-8.0.17-winx64をダウンロードし、Zipファイル形式を選択...

vue-routerのマッチングに基づいてパンくずリスト機能を実現する

この記事では主にvue-routerのmatchedをベースにしたbreadcrumb機能を紹介し、...

React Nativeがシミュレータにリンクできない件について

React Native は、現在人気のオープンソース JavaScript ライブラリ React...

MySQL データ操作 - DML ステートメントの使用

例示するDML(データ操作言語)とは、データベースの追加、削除、変更を行うための操作命令のことです。...

CentOS7 systemdにカスタムシステムサービスを追加する方法

システムド: CentOS 7のサービスsystemctlスクリプトは、/usr/lib/syste...

Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明

みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...

Linux/Docker で System.Drawing.Common を使用する

序文プロジェクトを .net core に移行した後、 System.Drawing.Commonコ...

Vue3+Vue-cli4 プロジェクトで Tencent スライダー検証コードを使用する方法

導入:従来の画像検証コードと比較して、スライダー検証コードには次の利点があります。サーバーは検証コー...

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

MySQL バイナリログデータ復旧: 誤ってデータベースを削除した場合の詳細な説明

MySQL Binログデータの回復: 誤ってデータベースを削除した場合前書き: テスト マシンで誤っ...

MySQL のタイムスタンプと日付時刻のタイムゾーンの問題によって生じる DTS の落とし穴の詳細な説明

目次MySQL で現在の時刻を表現するにはどうすればよいでしょうか?結論は確認するピットMySQL ...

Linuxにおけるselinuxの基本設定チュートリアルの詳細な説明

selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...

CSSは、他のレイヤーを変更せずに、多層ネスト構造の最外層を回転させる効果を実現します。

次のようなシナリオがあります。円形のコンテナで、最も外側のコンテナの背景が円弧になっています。内側の...

HTMLデザインパターンの日々の勉強ノート

HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...

JSは賞金の重さに基づいて当選確率を計算します

目次1. シナリオ例1.1. 抽選の賞品名を設定する1.2. 各賞の重みを設定する1.3. ラッキー...