ошибка mysql (mariadb) 1698 (28000): доступ запрещен для пользователя 'root'@'localhost'

Я работаю над Xubuntu 15.04. Я уже установил MariaDB-сервер на различных системах и всегда просил пароль root во время установки. На этот раз, однако, я не помню, просят пароль. Когда я пытаюсь войти в систему без пароля (или пустой пароль), я получаю Access denied for user 'root'@'localhost' ошибка.
Я попытался удалить пакет полностью

sudo apt-get remove mariadb-server
sudo apt-get purge mariadb-server

когда я переустановил, я до сих пор не спросили пароль root.

Я пробовал mysqld --skip-grant-tables подход от
mysql как исправить доступ запрещен для пользователя 'root'@ 'localhost' .
Я могу изменить пароль для пользователя root в базе данных mysql-по крайней мере, изменение хэш - значения-но я все еще не могу войти в систему с новым паролем после перезапуска mysql-сервера. Я все еще получаю ту же ошибку.

пользователь debian-sys-maint не существует. Поэтому я не могу ничего исправить.

любые идеи, что еще можно попробовать?

24
задан Community
25.11.2022 10:26 Количество просмотров материала 3412
Распечатать страницу

7 ответов

необходимо сбросить пароль. так что за что

sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
30
отвечен Abhinav bhardwaj 2022-11-26 18:14

идея с новой настройкой заключается в том, что вы не должны использовать пароли вообще. См.Unix_socket плагин аутентификации для сведения.

что особенно актуально, так это содержание /usr/доли/док/MariaDB в-сервер-10.0/ридми.дистрибутив Debian.gz на Ubuntu 16.04:

на новых установках пароль root не установлен и пользователь debian-sys-maint не создано больше. Вместо этого учетная запись MariaDB root устанавливается для проверки подлинности с помощью системы Unix сокет, например, любой вызов mysqld root или через sudo будет позвольте пользователю видеть приглашение mysqld.

вы никогда не можете удалить пользователя mysql "root". Хотя у него нет пароля установлен, плагин unix_auth гарантирует, что он может быть запущен только локально как root пользователь.

учетные данные в /etc / mysql / debian.cnf укажите пользователя, который используется инит скрипты для остановки сервера и выполнять logrotation. Это использовало для того чтобы быть в Debian-sys для мейнт пользователя больше не используется, так как root может работать напрямую.

Так что если вы отключите этот плагин для root и установите пароль, ежедневное задание cron сломается, поскольку предполагается, что он войдет в систему как root без пароля, но с плагином.

потом написано:

скрипты должны запускаться от имени пользователя, иметь необходимые определены через unix_socket.

похоже, что пароли не должны быть использованы приложения.

10
отвечен colan 2022-11-26 20:31

Я решил задачу, следуя ответу из этого поста:

не удается сбросить пароль root MySQL (MariaDB)

необходимо изменить поле плагина mysql.пользователь для всех корней в пустую строку.

2
отвечен d72b617c 2022-11-26 22:48

Я сделал это, выполнив эту команду, сразу после установки:

$ sudo mysql_secure_installation

на первом шаге пароль пуст, поэтому просто нажмите Enter.

1
отвечен dxvargas 2022-11-27 01:05

У меня была такая же проблема на raapberry pi с растяжкой. Мое решение состояло в том, чтобы создать нового пользователя со всеми привилегиями, выполнив следующее:

sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root

MariaDB [(none)]> use mysql
MariaDB [mysql]> FLUSH PRIVILEGES;
GRANT ALL privileges ON mysql.* TO 'admin'@'localhost' with grant option;

теперь я могу войти и нам пользователь "admin" Как суперпользователь.

Я надеюсь, что это поможет кому-то.

0
отвечен trasba 2022-11-27 03:22

просто использовать sudo mysql -u root - это


подробности: новые версии проходят аутентификацию в mysql с помощью системной аутентификации. Поэтому, если вы можете sudo в ОС, он предполагает, что Вы тоже корень БД. Вы можете подтвердить это, выдав sudo mysql -u root -e "USE mysql; SELECT User, Host, plugin FROM mysql.user;". Вы должны увидеть что-то вроде этого (возможно, с auth_socket в других дистрибутивах)

+------+-----------+-------------+
| User | Host      | plugin      |
+------+-----------+-------------+
| root | localhost | unix_socket |
+------+-----------+-------------+
0
отвечен DeepSpace101 2022-11-27 05:39

просто использовать sudo mysql -u root и вы будете внутри.

подробности: новые версии проходят аутентификацию в mysql с помощью системной аутентификации. Поэтому, если вы можете sudo в ОС, он предполагает, что Вы тоже корень БД. Вы можете подтвердить это, выдав sudo mysql -u root -e "USE mysql; SELECT User, Host, plugin FROM mysql.user;". Вы должны увидеть что-то вроде этого (возможно, с auth_socket в других дистрибутивах)

+------+-----------+-------------+
| User | Host      | plugin      |
+------+-----------+-------------+
| root | localhost | unix_socket |
+------+-----------+-------------+
0
отвечен DeepSpace101 2022-11-27 07:56

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх