MySQL 5.7はセキュアモデルを変更しました。MySQL root
ログインにはが必要になりましたsudo
。
つまり、phpMyAdminは資格情報を使用できませんroot
。
最も簡単で安全かつ永続的なソリューションは、新しいユーザーを作成し、必要な特権を付与することです。
1. mysqlに接続します
sudo mysql --user=root mysql
2.実際のパスワードを作成する
以下の手順ではsome_pass
、サンプルパスワードとして使用します。パスワードで置き換えてください!SOME_PASS
パスワードとして使用しないでください!
3. phpMyAdminのユーザーを作成します
次のコマンドを実行します(some_pass
目的のパスワードで置き換えます)。
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
phpMyAdminがlocalhostに接続している場合、これで十分です。
4.オプションで安全ではない:リモート接続を許可する
覚えておいてください:リモートユーザがすべての権限を持つことができるようにすることは、セキュリティ上の問題であり、これはされていないほとんどの場合必要。
これを念頭に置いて、リモート接続中にこのユーザーに同じ特権を持たせたい場合は、さらに実行します(some_pass
ステップ#2で使用したパスワードで置き換えます)。
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
5. phpMyAdminを更新する
を使用して、次のセクションのユーザー/パスワード値を更新sudo
する/etc/dbconfig-common/phpmyadmin.conf
ファイルを編集します(some_pass
ステップ#2で使用したパスワードで置き換えます)。
# dbc_dbuser: database user
# the name of the user who we will use to connect to the database.
dbc_dbuser='phpmyadmin'
# dbc_dbpass: database user password
# the password to use with the above username when connecting
# to a database, if one is required
dbc_dbpass='some_pass'