Как узнать мой корневой пароль MySQL?



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



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

565   8  

8 ответов:

вы можете сбросить пароль 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';

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

Алекс, похоже, что вы установили сервер 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" не дало желаемого для меня результата. Надеюсь, это кому-то поможет :)

Ссылка:https://help.ubuntu.com/12.04/serverguide/mysql.html

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;

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

для 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>  
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

Хм 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');

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

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

1.убить mysql:

$ sudo service mysql stop

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

$ sudo mysqld_safe --skip-grant-tables 

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

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

Comments

    Ничего не найдено.