Назад | Перейти на главную страницу

Почему для доступа к MariaDB после обновления до Ubuntu 16.04 не требуется корневой проход?

Недавно я обновил систему с Ubuntu 14.04 до 16.04 (mysql Ver 15.1 Distrib 10.0.36-MariaDB) и заметил, что root может войти без пароля, например:mysql -u root пусто.

Пытался установить новый проход через mysql с UPDATE mysql.user SET authentication_string = PASSWORD('supersekrit') WHERE User = 'root'; однако это не отключило пустой пароль. Также пробовал запустить mysql_secure_installation но безрезультатно.

Найти Почта об установке plugin в пользовательской строке значение «NULL». Я сделал это, но теперь root не может войти вообще.

Я перешел по ссылке на percona в сообщении, где говорится правильный способ сделать это - запустить следующее: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';. В результате появляется сообщение об ошибке -> ERROR 1064 (42000): You have an error in your SQL syntax...

Не совсем уверен, как это исправить. Любые идеи?

ОБНОВИТЬ: после установки пароля для учетной записи root mysql демон cron Ubuntu 16.04 теперь выдает ошибки во время logrotate. Похоже, это кроличья нора. Я очистил пароль root на данный момент, пока не смогу выяснить, что не так с logrotate. Ага.

error: 'Access denied for user 'root'@'localhost' (using password: NO)'

Причина, по которой вы можете получить доступ как пользователь root, вероятно, связана с тем, что Аутентификация сокета домена UNIX включен. Учитывая, что ALTER USER не удалось выполнить команду, вероятно, вы используете MariaDB до 10.2.

Вы можете создать нового пользователя с теми же грантами, что и root путем копирования грантов в SHOW GRANTS FOR 'root'@'localhost':

MariaDB [test]> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION       |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

Например, если я хочу, чтобы имя моего пользователя было backup-root с паролем, установленным на password, Я бы выполнил следующее:

CREATE USER 'backup-root'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'backup-root'@'localhost WITH GRANT OPTION;