私はこれを以前に見ましたが、あるmysqlユーザーはphp経由でログインし、別のユーザーはログインしません。ユーザーがコマンドラインから作業することもありますが、phpからは作業しません。
それは常にエミルが2つを参照しているものでした。mysqlユーザーは、実際にはユーザーとホストのペアです。したがって、ユーザーmegadots@localhostとユーザーmegadots@mycoolhostは、2つの別個のレコードとしてmysql.userテーブルにリストされます。
コマンドラインからログインできる場合は、このクエリを実行します。
SELECT user, host FROM mysql.user
ユーザーとそのホストの完全なリストが表示されます。
動作しているphpMyAdminユーザーを認識した場合は、おそらく使用したいホストであるホスト列を確認してください。
ホストをリセットするには、これらのクエリを実行します(!mysqlのインストール全体でprivilagesテーブルを操作する場合は注意してください)
update mysql.user set host = 'hostname'
where user = 'username' and host = 'oldhostname';
flush privileges;
ユーザー名と%が他のすべてよりも優先されるホストとしてのレコードが表示され、ユーザーに複数のレコードがあり、そのうちの1つのホストとして%が存在する場合、ホストとして%が使用されているユーザー名がパスワードが間違っていて、username @ localhostのパスワードを何度リセットしても、ログイン時にusername @%と比較されるため、無効になります。