Ubuntu 18.04 LTS Bionic Beaverを新規インストールし、LAMPスタックを設定し、PHPMyadminをインストールした後、mysqlをmysql_secure_installationで保護している間に与えたパスワードとしてPHPMyadminにログインできないため、そのようです。インターネットで解決策を検索しましたが、私の場合、提供されたすべての解決策に良い結果はありません。
実用的なソリューションが評価されます。
同じ問題がありました。明らかに、MySQLはデフォルトでソケットベースの認証を使用するように設定されており、パスワードではなくシステムのユーザー名を使用します。問題を解決するために、次のコマンドを使用しました。
RootユーザーとしてMySQLにアクセスします。
Sudo mysql # or Sudo mysql -u root
MySQLルートユーザーのパスワードを設定します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
上記の「テスト」を使用する実際のパスワードに置き換えます
解決策は、MySQLの認証方法をソケット認証から切り替えることです(つまりauth_socket
)、パスワード認証に(つまり、mysql_native_password
プラグイン)。
MySQL 5.7以降のバージョンでは、デフォルトでソケット認証が使用されます。これは、ターミナルでSudo mysql
を使用してパスワードなしでMySQLを起動できることを意味します。 mysql_secure_installation
を使用して新しいルートパスワードを作成した場合でも、パスワード認証を使用するphpmyadminなどのサードパーティソフトウェアにアクセスすることはできません。ソリューションは次のとおりです。
Sudo apt install mysql-server
Sudo mysql_secure_installation
mysql_secure_installation
を入力したら、rootのパスワードを作成し、残りの質問に対して[はい]をクリックします。 [デフォルトの認証方法は今まで変更されていないため、MySQLはパスワードなしで起動していることに気付くでしょう。 ]
次に、MySQLを入力します
Sudo mysql
SELECT user,authentication_string,plugin,Host FROM mysql.user;
これで、次の出力で、ルートがauth_socket
ではなくasmysql_native_password
プラグインを持っていることがわかります。
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | Host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *832A85D6EC83FA4A19ACFD461F672B95E4540611 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
次に、プラグインをmysql_native_password
に変更する必要があります。次のコマンドの「パスワード」を強力なパスワードに置き換えます
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
上記の同じコマンドを使用して、各ユーザーの認証方法を確認できます
SELECT user,authentication_string,plugin,Host FROM mysql.user;
出力:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | Host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *C035F91799F4415B005D146ECEB5ADD4D991031F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *832A85D6EC83FA4A19ACFD461F672B95E4540611 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
出力が上記のようなもので、rootのプラグインがmysql_native_password
の場合、次の操作を行っても構いません:)これで、rootとそのパスワードでphpmyadminに簡単にアクセスできます。お役に立てれば。
でログインする必要がありました
mysql -u root -p