mysql8.0 ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) の究極の解決策

Windows システムでコマンド ライン モードで mysql を入力すると、次の
エラーが表示されます。
ここに画像の説明を挿入
MySQL バージョンを使用するには、コマンド mysql --version を使用します。バージョンの前に 2 つのマイナス記号があることに注意してください。
ここに画像の説明を挿入
まず、使用する MySQL バージョンが次のとおりであることを宣言します
。 GPL)
その他、MySQL のバージョン、私が提供した方法で解決できるかどうかはまだテストされていませんが、
私と同じバージョンの場合、私の方法を使用すると、発生した問題が確実に解決されます。

次に、
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)
問題の原理を説明します.
ここではまずエラーメッセージを一言一句説明してください.スキップして読み進めてください。

ERROR 1045 (28000):
エラーとそのコードが表示されますが、これは重要ではありません。

ユーザーのアクセスが拒否されました:
アクセス、拒否、ユーザー、
ここでのキーワードはユーザー、ユーザーです。
つまり、このエラー メッセージは、このエラーが発生する理由を説明しており、根本的な原因は間違ったエラーが使用されていることです。ユーザーがログインしようとしていますMySQLに、

(パスワードを使用: いいえ):
これは役に立たないので、見ないでください。つまり: (パスワードを使用: いいえ)

'ODBC'@'localhost':
これは ODBC ユーザーです。
つまり、ログイン ユーザーを指定しない場合、Windows が MySQL データベースに接続するときに、この ODBC ユーザーを使用して MySQL データベースに接続します。そのような ODBC ユーザーが存在するかどうかに関係なく、Windows システムはこの ODBC ユーザーを使用して MySQL データベースに接続しようとします. 個人的には、Windows システムの方が ODBC に精通しているはずです. 結局、多くのWindows の ODBC 関連インターフェース (Open Database Connection (Open Database Connection
) Database Connectivity, ODBC))
したがって、mysql -uroot -proot を使用して 2 つのパラメーター (-u、 -p)、コマンド mysql を直接入力して MySQL コンソールに入りたいだけの場合は、MySQL に接続するために Windows システムによって選択された ODBC ユーザーを使用したくないことを MySQL に伝える必要があります。使い慣れたユーザーを使用して MySQL にログインし、ログインするときにあまり多くのパラメーターを入力したくない場合は、MySQL コンソールに mysql コマンドでログインできます

MySQL の動作メカニズムを理解する必要があります
.Windows 環境では,MySQL の起動は Windows システムにインストールした mysql サービスを呼び出すことです.
このサービスの場所は Control Panel\All Control Panel Items\Windows Tools\Services です. (私の端末はWindowsホーム版です)
見つからない場合はBaiduで検索してみてください。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
サービスを開き、mysql サービスを見つけます。異なるバージョンの MySQL を何度もインストールしたことがある場合は、mysql57、mysql80 など、別の名前がある可能性があります。いずれにせよ、それが mysql であることはわかります。右クリックして、この mysql サービスを見つけます。ポップアップ ドロップダウン メニューで [プロパティ] をクリックすると、
ここに画像の説明を挿入mysql サービスが表示されます。最後の呼び出しは、MySQL インストール パス内のビン内の mysqld.exe アプリケーション プログラムであり、
ここに画像の説明を挿入
この mysqld .exe アプリケーションは、起動すると、最初にファイル my.ini が見つかります。
この my.ini ファイルは、起動時に mysqld に何をすべきかを指示する
ので、my.ini を構成するだけで済みます。これを行うと、さまざまな面倒なパラメーターを入力しなくても、コマンド mysql 1 つだけで MySQL コンソールにログインできるため、問題の鍵は
この my.ini ファイルにあるのです。
次のステップは、ファイル my.ini を見つけることです。

MySQLの公式WebサイトからダウンロードしたバージョンのMySQLのインストールディレクトリにmy.iniファイルがないのは非常に奇妙です。そのため、完全に検索すると、このmy.iniファイルがC:\
ディレクトリに見つかりました。
ProgramData\MySQL\MySQL Server 8.0\my.ini は
ここに画像の説明を挿入(メモ帳を使用して) 開いて編集できますが、保存時にエラーが報告されます。

ここに画像の説明を挿入C:\ProgramData\MySQL\MySQL Server 8.0\ から my.ini ファイルをコピーし、Windows デスクトップに貼り付け、編集して保存し、最後に編集して保存した My.ini ファイルを貼り付けます。元のディレクトリ、
C:\ProgramData\MySQL\MySQL Server 8.0\
システムは、ファイルを置換またはスキップするように求めます。クリックしてターゲット (R) のファイルを置換し、ここに画像の説明を挿入クリックして続行します。編集をバイパスして完了できます。 my.ini ファイルを Windows システム権限で保存します。
ここに画像の説明を挿入ただし、MySQL にログインしようとすると、エラーが報告されます。


My.ini ファイルを編集しましたが、機能しませんでした, 理論が間違っていたからではなく、my.ini ファイルの場所が間違っていたからです.mysql サービスの起動パスをもう一度見てください.明らかに、
ここに画像の説明を挿入
mysqlサービスを開始する必要があります。これは mysqld.exe アプリケーションです。

ここに画像の説明を挿入

そして、このアプリケーション mysqld.exe は、必要な my.ini ファイルを MySQL インストール パス
(
C:\Program Files\MySQL\MySQL Server 8.0\)で探します。

ここに画像の説明を挿入

My.ini ファイルが見つかったディレクトリは、
C:\ProgramData\MySQL\MySQL Server 8.0です。
ここに画像の説明を挿入

明らかに、ここで行う必要があるのは、編集した my.ini ファイルを mysqld.exe アプリケーションが配置されているインストール パスに移動することですが、それは mysqld.exe アプリケーションと同じディレクトリではなく、mysqld.アプリケーションの親ディレクトリ bin の上のディレクトリ、
つまり C:\Program Files\MySQL\MySQL Server 8.0\の .exe

ここに画像の説明を挿入
ここに画像の説明を挿入
チェック、現在のユーザー、必要なルート、
mysql> select user();
ここに画像の説明を挿入
はい、

問題は解決し、
MySQL サービスを停止して開始する必要はありません
(net stop mysql、net start mysql) は
my.ini の [mysqld] にある必要はありません。skip-grant-tables は
問題を解決できます。私の方法によれば、あなたは幸せですか!

ここで、my.ini ファイルの変更が必要な場所と内容を追加、編集し、
my.ini ファイルを開き、[mysql] を検索します (mysqld ではなく、mysql であることに注意してください)。

ここに画像の説明を挿入
次に、MySQL がログインに使用するユーザー名とパスワードを入力します。
ここでは、アカウント番号とパスワードを入力する必要があります。入力しないと、元のエラーが報告されます。

実はこの問題に数日前から悩まされており、半年以上が経ちましたが、この間ネット上にコピペの書き込みが多く見受けられました。神様、私は突然、はい、MySQL の起動プロセスについて新たな理解と理解を得たので、すぐに実験を行い、スムーズに進み、直接成功したことに気づきました。遠回りは避けて、最初は本当に困り、パソコンを壊しそうになりました. インターネットの素晴らしい記事をご指導いただき、会社の端末を守っていただきました。
私が見た決定的な記事を貼り付けて、みんなでシェアして、

ここに画像の説明を挿入
2022年01月06日水曜日

おすすめ

転載: blog.csdn.net/m0_47505062/article/details/122342121