ОШИБКА 1698 (28000): доступ запрещен для пользователя 'root' @ 'localhost' в Ubuntu 18.04

22

Я следовал этому руководству для установки MySQL, но после успешной установки MySQL я не смог получить доступ к базе данных.

ОШИБКА 1698 (28000): доступ запрещен для пользователя 'root' @ 'localhost'

Ашрафуззаман Суджан
источник
1
Я столкнулся с той же проблемой, после некоторых копаний, понял, что вам нужно установить пароль root самостоятельно, следуя инструкциям на StackOverFlow .
Мухаммед. Фатхи

Ответы:

46

Я нашел решение по ссылке здесь , следуя этому решению, я решил свою проблему.

Короткие шаги:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Примечание: вот testновый пароль для пользователя root. Кроме того, не забудьте запустить команду sudo service mysql restartпосле изменения пользователя.

Ashrafuzzaman Sujan
источник
Спасибо. Странно, что MySQL-сервер больше не предлагает вводить пароль.
gamofe
1
ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с корнем 'USER' @ 'localhost', ИДЕНТИФИЦИРОВАННЫМ С помощью mysql_native_password BY 'b230mehonot' 'в строке 1
alhelal
та же ошибка здесь ... :(
user1111929
@alhelal, решение для MySQL, а не для MariaDB. Таким образом, вы можете попробовать другое решение.
Ашрафуццаман Суджан
Не пишите mysql -u root, просто пишите "sudo mysql". В системах Ubuntu, работающих под управлением MySQL 5.7 (и более поздних версий), пользователь root по умолчанию проходит аутентификацию с помощью плагина auth_socket.
Рависони
13

Я нашел другой способ, который намного лучше, так как нам не нужно давать пароль для локальной системы.
Это как следует.

Откройте терминал и введите

sudo mysql -u root -p

Он подскажет вам в MySQL, здесь вы можете запустить любые команды MySQL.

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

USE mysql;

Теперь мы меняем тип таблицы с помощью следующей команды

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

теперь мы должны сбросить привилегии, потому что мы использовали UPDATE. Если вы используете INSERT, UPDATE или DELETE для таблиц грантов напрямую, вам нужно использовать FLUSH PRIVILEGES для перезагрузки таблиц грантов.

FLUSH PRIVILEGES;

теперь выйдите из mysql следующей командой

exit;

Теперь перезапустите сервер MySQL, выполнив следующую команду

service mysql restart

Надеюсь, что это может помочь

Спасибо.

Крунал Патхак
источник
2
Это правильный ответ
Нингаппа
Спасибо, что
рады