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 1130例外、リモートログインできない解決策

目次質問: 1. リモートログイン権限を有効にする: 2. MySQLの権限を更新します。 3. テ...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

Linux trコマンドの使い方

01. コマンドの概要tr コマンドは、標準入力からの文字を置換、圧縮、削除できます。ある文字セット...

Docker で Confluence をデプロイする

1. 環境要件1. Docker 17以上がインストールされている2. コンテナ操作docker r...

Navicat が MySQL にリモート接続するときに発生する 10060 不明エラーを解決する方法

はじめに:今日は、サーバー上のMySQLにリモート接続したいと思います。使用するソフトウェアはNav...

Videojs+swiper が Taobao の商品詳細カルーセルを実現

この記事では、Taobao商品詳細のカルーセルを実現するためのvideojs+swiperの具体的な...

独自の FTP および SFTP サーバーを構築するプロセスの紹介

FTP と SFTP はファイル転送プロトコルとして広く使用されています。関連する機能を開発するには...

React Nativeの起動プロセスの詳細分析

はじめに: この記事ではreact-native-cliで作成したサンプル プロジェクト (Andr...

CSS を使用して複数の方法で等高レイアウトを実装するサンプル コード

この記事で説明する等高レイアウトでは、純粋な CSS を使用して、要素の高さを手動で設定することなく...

ウェブページでよく使用される共有コードの完全なリスト(フロントエンドに必須)

コードをコピーコードは次のとおりです。 1. 新浪微博<a href="http:/...

Docker の MySQL 時間とシステム時間の不一致の問題を解決する

最近、Docker に MySQL をインストールしたところ、データベースの時刻がシステム時刻と 8...

MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

目次MySQL NDB Clusterとはクラスター構築のための準備作業クラスターのデプロイを開始す...

VMware に Centos8 をインストールする詳細なチュートリアル

CentOS公式サイトアドレスhttps://www.centos.org/まず必要なファイルをダウ...

JavaScript 文字列操作の 4 つの実用的なヒント

目次序文1. 文字列を分割する2. JSONのフォーマットと解析3. 複数行の文字列と埋め込み式4....

17 個の JavaScript ワンライナー

目次1. DOMとBOM関連1. 要素にフォーカスがあるかどうかを確認する2. 要素の兄弟ノードをす...