Как мне узнать мой корневой пароль MySQL? - PullRequest
64 голосов
/ 16 апреля 2011

Я только что установил MySQL в Ubuntu, и пользователь root не может войти в систему:)

Как я могу восстановить или узнать свой пароль? Использование пробела для пароля не работает.

Ответы [ 8 ]

134 голосов
/ 16 апреля 2011

Вы можете сбросить пароль root, запустив сервер с --skip-grant-tables и войдя без пароля, выполнив в качестве пользователя root (или с помощью sudo):

# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p

Теперь вы сможете войти в систему как root с вашим новым паролем.

Также можно найти запрос, который сбрасывает пароль, в /home/$USER/.mysql_history или /root/.mysql_history пользователя, который сбрасывает пароль, новыше всегда будет работать.

Примечание: до MySQL 5.7 столбец назывался password вместо authentication_string.Замените строку выше на

mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
19 голосов
/ 01 мая 2013

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

Алекс, похоже, вы установили сервер MySQL через метапакет "mysql-server".Это устанавливает последний пакет по ссылке (в моем случае, mysql-server-5.5).Мне, как и вам, не было предложено ввести пароль MySQL при настройке, как я ожидал.Я предполагаю, что есть два ответа:

Решение # 1: установить MySQL под его полным именем:

$ sudo apt-get install mysql-server-5.5

Или

Решение # 2: перенастроить пакет ...

$ sudo dpkg-reconfigure mysql-server-5.5

Вы должны указать полное имя пакета.Использование метапакета «mysql-server» не дало желаемого результата для меня.Надеюсь, кому-то это поможет

7 голосов
/ 11 июня 2018
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
FLUSH PRIVILEGES;

mysql -u root -p # and it works
7 голосов
/ 09 июля 2014

MySQL 5.5 в Ubuntu 14.04 требовала немного других команд, как рекомендовано здесь .В двух словах:

sudo /etc/init.d/mysql stop
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root

А затем из командной строки MySQL

FLUSH PRIVILEGES;
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;

И цитируемый источник также предлагает альтернативный метод.

3 голосов
/ 02 марта 2015

Для RHEL-mysql 5.5:

/etc/init.d/mysql stop

/etc/init.d/mysql start --skip-grant-tables

 mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
 mysql> FLUSH PRIVILEGES;
 mysql> exit;

mysql -uroot -pnewpwd

mysql>  
1 голос
/ 16 января 2019

Есть простое решение.

MySql 5.7 поставляется с анонимным пользователем, поэтому вам необходимо перенастроить сервер MySQL.

Вы можете сделать это с помощью этой команды

попытаться найти временный проход:

grep 'temporary password' /var/log/mysqld.log

, то:

sudo mysql_secure_installation

По этой ссылке больше информации о mysql 5.7

https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

1 голос
/ 27 сентября 2016

Хмм Mysql 5.7.13, чтобы сбросить все, что я сделал:

$ sudo service mysql stop Чтобы остановить mysql

$ mysqld_safe --skip-grant-tables & Запустить mysql

$ mysql -u root

Также как правильный ответ.Тогда все, что я сделал, это сделал то, что сделал @eebbesen.

mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('NEW-password-HERE');

Надеюсь, это кому-нибудь поможет:)

0 голосов
/ 28 июня 2016

В MYSQL 5.7, если вы используете mysql для разработки, просто:

1.kill mysql:

$ sudo service mysql stop

2.старт mysql в режиме --skip-grant-tables:

$ sudo mysqld_safe --skip-grant-tables 

и, кроме того, вы можете попытаться изменить таблицу пользователей в режиме "skip-grant-table", однако мне это не удалось.

Итак, это просто обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...