Недавно я обновил систему с 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;