LINUX.ORG.RU

mysql.connector.errors.ProgrammingError: 1698 (28000): Access denied for user 'root'@'localhost'

 , ,


0

1

Когда ввожу команду mysql -u root -p, а затем ввожу пароль, то появляется ошибка:

mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

MariaDB [(none)]> SELECT user, host FROM mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
3 rows in set (0.001 sec)

MariaDB [(none)]> SELECT USER(), CURRENT_USER();
+----------------+----------------+
| USER()         | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.000 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'skip_networking';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | OFF   |
+-----------------+-------+
1 row in set (0.001 sec)

Оно пишет access denied а потом всё равно позволяет вводить запросы?

mysql.connector.errors.ProgrammingError: 1698 (28000): Access denied for user 'root'@'localhost'

А это откуда? Ты дал какому-то приложению рут-доступ к базе?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от anonymous_sapiens

И что? Ты вопрос автора прочёл вообще или работаешь в режиме «увидел ключевое слово - подставил самый похожий ответ и того что знаешь»? Консоль базы у него и так есть, не пиши ерунду.

firkax ★★★★★
()
Ответ на: комментарий от Danger271

Какой ты пароль туда пишешь? Небось пароль от системного юзера в линуксе? Это не тот пароль, нужен именно пароль от пользователя базы, который у тебя наверно не задан.

Так его можно задать:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('тут пароль');
FLUSH PRIVILEGES;

Только ещё одно уточнение: давать всяким скриптам рутовый доступ к базе - плохая идея. Ну, кроме случаев когда это скрипты для администрирования сервера. Если у тебя там приложение - лучше создай нового пользователя, выдай ему права к базе и пользуйся им.

CREATE DATABASE имя_базы;
GRANT ALL PRIVILEGES ON имя_базы.* TO 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль';

Тут имя_базы - база, к которой нужен доступ скрипту (если её ещё нет то можешь создать, хотя может это и не нужно), имя_пользователя и пароль - то, что надо будет прописать в настройках скрипта для доступа к базе, можешь выбрать любые.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 4)