Вопрос Сброс пароля пользователя MySQL


Проблема

Я запускаю Ubuntu 18.04, и я недавно установил MySQL. Тем не менее, я никогда не использовал его. Насколько я помню, я никогда не устанавливал ни одного пароля для любого пользователя. (Если бы я это сделал, я знаю, что это будет.)

Сегодня я установил phpMyAdmin и обнаружил, что мне не удалось войти в систему через phpMyAdmin. Я попытался войти в MySQL напрямую через терминал без пароля:

mysql -u root

И с паролем, который я бы установил, если бы я забыл:

mysql -u root -p

Но оба они вернулись

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Подходящие решения

Попытка 1

Я пробовал следовать это guide, я остановил процесс демонов MySQL, затем начал процесс демон в mysqld, используя --skip-grant-tables вариант. Затем при запуске этой команды для входа в систему без пароля:

mysql -u root

Вместо того, чтобы mysql> Я столкнулся со следующей ошибкой:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket 
'/var/run/mysqld/mysqld.sock' (2)

Попытка 2

Я попытался удалить MySQL, используя:

sudo apt-get --purge remove mysql-server mysql-common mysql-client

И затем я попытался переустановить MySQL с помощью этой команды:

sudo apt-get install mysql-server mysql-common mysql-client

Затем попытался установить пароль следующим образом:

mysqladmin -u root password my-new-password

Но я снова был в тупике с сообщением об ошибке:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost''

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

редактировать

После использования sudo (согласно ответу vidarlo), я смог получить доступ к моим базам данных, и мне удалось сменить пароль, используя это:

mysql> update user set authentication_string=password("Z4hVdwn9qZ") 
       where user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

Но phpMyAdmin все равно не войдет в систему и не вернет ошибку

#1698 - Access denied for user 'root'@'localhost'

1
2018-05-21 18:31


происхождения


После очистки и переустановки mysql вы могли получить доступ к mysql, используя mysql -u root перед попыткой установить пароль? - Lienhart Woitok
@LienhartWoitok Nope - Abraham Murciano Benzadon


ответы:


Пытаться

sudo mysql -u root

MariaDB использует проверку подлинности сокета Unix, что означает, что вы аутентифицированы как пользователь, запускающий клиент mysql.

Вы можете больше узнать об этом вДокументация MariaDB,


2
2018-05-21 18:54



Мне удалось использовать это для доступа к моим базам данных и изменить пароль root с помощью командной строки, но phpMyAdmin все еще говорит #1698 - Access denied for user 'root'@'localhost' - Abraham Murciano Benzadon