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