Как узнать мой пароль root MySQL?
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" не дало мне желаемого результата. Надеюсь, это кому-то поможет :)
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
вы не можете-однако:http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Хм 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
и, далее, вы можете попытаться изменить таблицу пользователя в режиме "пропустить-предоставить-таблицу", однако я не смог.
Итак, это просто обходной путь.