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'