Я установил mariadb и как пользователь root Linux я могу запустить команду mysql для доступа к базе данных. Но когда я пытаюсь войти как обычный пользователь Linux и запустить mysql -u root -p
, я получаю ошибку:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Я пробовал несколько методов, например, сброс пароля для пользователя root в MySQL, но ничего не помогло.
Любая помощь будет полезна.
решение1
У меня была та же проблема, она была вызвана значением «plugin» в таблице «mysql.user».
Вы пробовали с этим ответом:https://askubuntu.com/a/636579/299538
Вот объяснение этому:https://superuser.com/a/1071043/592085
решение2
В MariaDB вы не можете войти под обычным пользователем, вам нужен доступ root или использование sudo
. Другое решение — добавить еще одного пользователя root с полными привилегиями.
Подключитесь к базе данных с помощью sudo:
sudo mysql -u root
Проверьте свою учетную запись в текущей базе данных:
mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
Создайте пользователя заново root
(при необходимости используйте пароль):
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';
Давать разрешение:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Румянец:
mysql> FLUSH PRIVILEGES;
Показать использование базы данных:
SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | localhost |
+------+-----------+
Выйдите и подключитесь как обычный пользователь:
mysql -u root