MySQL 5.7 изменил модель безопасности: теперь для rootвхода в MySQL требуется 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'