ПОМИЛКА 1698 (28000): Відмовлено в доступі для користувача 'root' @ 'localhost' на Ubuntu 18.04


22

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

ПОМИЛКА 1698 (28000): Доступ заборонено користувачеві 'root' @ 'localhost'


1
Я зіткнувся з тією ж проблемою, після деякого копання зрозумів, що вам доведеться встановити корінний пароль самостійно, дотримуючись інструкцій на StackOverFlow .
Мохаммед.Х Фаті

Відповіді:


47

Я знайшов рішення за посиланням тут , дотримуючись цього рішення, я вирішив свою проблему.

Короткі кроки:

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

Примітка. Ось testновий пароль для кореневого користувача. Також не забудьте запустити команду sudo service mysql restartпісля зміни користувача.


Дякую. Незвичайний mysql-сервер більше не пропонує вводити пароль.
gamofe

1
ПОМИЛКА 1064 (42000): у вас є помилка у вашому синтаксисі SQL; перевірте посібник, що відповідає вашій версії сервера MariaDB, чи правильно використовувати синтаксис для використання біля кореня USER '@' localhost 'ІДЕНТИФІКОВАНО З mysql_native_password BY' b230mehonot '' у рядку 1
alhelal

тут
така

@alhelal, рішення для MySQL, а не для MariaDB. Тож ви можете спробувати інше рішення.
Ашрафуцзаман Суджан

Не пишіть корінь mysql -u, просто напишіть "sudo mysql", У системах Ubuntu під управлінням MySQL 5.7 (і пізніших версій) користувач root має автентифікацію за замовчуванням плагіном auth_socket.
ravisoni

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 на таблицях грантів безпосередньо, вам потрібно використовувати PRIVILEGES FLUSH для перезавантаження таблиць грантів.

FLUSH PRIVILEGES;

тепер вийдіть з mysql, виконавши наступну команду

exit;

тепер перезапустіть сервер mysql, виконавши наступну команду

service mysql restart

Сподіваюся, це може допомогти

Дякую.


2
Це правильна відповідь
Ningappa

Дякую,
раді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.