web-dev-qa-db-ja.com

MySQL / PHPMyadminの新規インストール後のUbuntu 18.04 LTS。 rootパスワードなし; PHPmyadminでログインできない

Ubuntu 18.04 LTS Bionic Beaverを新規インストールし、LAMPスタックを設定し、PHPMyadminをインストールした後、mysqlをmysql_secure_installationで保護している間に与えたパスワードとしてPHPMyadminにログインできないため、そのようです。インターネットで解決策を検索しましたが、私の場合、提供されたすべての解決策に良い結果はありません。

実用的なソリューションが評価されます。

3
Bridge

同じ問題がありました。明らかに、MySQLはデフォルトでソケットベースの認証を使用するように設定されており、パスワードではなくシステムのユーザー名を使用します。問題を解決するために、次のコマンドを使用しました。

RootユーザーとしてMySQLにアクセスします。

Sudo mysql   # or Sudo mysql -u root

MySQLルートユーザーのパスワードを設定します。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

上記の「テスト」を使用する実際のパスワードに置き換えます

9
heyjoe

解決策は、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に簡単にアクセスできます。お役に立てれば。

このリンクは、この概念をよりよく理解するのに役立ちました

1
Swapnil Sourabh

でログインする必要がありました

mysql -u root -p
0
Cancelor