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'