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

推薦する

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

Vue.js パフォーマンス最適化 N 個のヒント (収集する価値あり)

目次機能コンポーネント子コンポーネントの分割ローカル変数v-show によるDOMの再利用キープアラ...

HTML ボディタグと HTML でよく使われる制御タグの詳細な説明

1. <body> タグ: Web ページの本体をマークするために使用されます。body...

Node.js のモジュール性、npm パッケージ マネージャーの説明

目次モジュール化の基本概念モジュール化とは何かモジュール分解の利点Node.js のモジュール性No...

mysql8.x docker リモートアクセスの詳細な設定

目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...

3つのDocker Nginxログの処理の詳細な説明

社内の同僚は Nginx ログの標準出力、つまりコンソール経由の処理を必要としているため、まずログを...

vue シンプルメモ帳開発の詳しい説明

この記事では、参考までにEasy Notepadを実装するためのVueの具体的なコードを紹介します。...

UbuntuにCMakeをインストールするいくつかの方法の詳細な説明

CMakeをインストール sudo apt をインストール cmake この方法はインストールが簡単...

js配列forEachインスタンスの詳細な使用方法

1. forEach() は map() に似ています。これも渡された関数に各要素を順番に適用します...

MySQL 内部結合の使用例 (必読)

文法規則 列名を選択 テーブル名1から INNER JOIN テーブル名2 ON テーブル名1.列名...

Linux デスクトップ用に Openbox を設定する方法 (推奨)

この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...

Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。

mysqldump コマンドはじめに: データベースバックアッププログラム形式: mysqldum...

Linux インストール MySQL チュートリアル (バイナリ配布)

このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...