Я пытался сбросить свой пароль root для MySQL. Я запустил mysqld_safe --skip-grant-tables, обновил пароль root и проверил таблицу пользователей, чтобы убедиться, что он там есть. После перезапуска демона mysql я попытался войти в систему с новым паролем root, который я только что установил, и по-прежнему получаю отказ в доступе из-за ошибок пользователя root. Я также попытался полностью удалить и переустановить mysql (включая удаление файла my.cnf), и все равно не повезло. Есть ли у кого-нибудь предложения о том, что мне делать дальше?
заранее спасибо
mysql
root
mysqladmin
Ник
источник
источник
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somepassword');
это безопаснее всего.Ответы:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass'); FLUSH PRIVILEGES;
источник
FLUSH PRIVILEGES
чтобы изменения вступили в силу без перезапуска сервера базы данных.взгляните на это из Справочного руководства MySQL:
Первый вход в mysql:
# mysql -u root -p
Затем в командной строке mysql запустите:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
затем
FLUSH PRIVILEGES;
Дополнительную информацию см. На этой странице: Сброс корневого пароля: системы Unix
источник
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Вы можете найти Сброс пароля root в документации MySQL.
источник
mysqld --initialize --console
Это обновленный ответ для WAMP v3.0.6 и выше.
> UPDATE mysql.user > SET authentication_string=PASSWORD('MyNewPass') > WHERE user='root'; > FLUSH PRIVILEGES;
В MySQL версии 5.7.x в таблице mysql больше нет поля пароля. Он был заменен на authentication_string. (Это для терминала / CLI)
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE user='root'; FLUSH PRIVILEGES;
(Это если для PHPMyAdmin или любого графического интерфейса Mysql)
источник
mysql.user
таблица должна быть обновлена. Обратите внимание, что если вы используете любую другую базу данных (заданнуюuse
командой), вы получите сообщение об ошибке, что таблицаuser
не существует. Спасибо, сэр!mysql.user
таблицы нет . другие ответы устарелиНашел! Я забыл хешировать пароль, когда менял его. Я использовал этот запрос для решения своей проблемы:
update user set password=PASSWORD('NEW PASSWORD') where user='root';
Я забыл
PASSWORD('NEW PASSWORD')
и просто ввел новый пароль в виде обычного текстаисточник
--init-file=
если вы смотрели.Пожалуйста, выполните следующие шаги.
шаг 1. остановить mysql
шаг 2.
sudo mysqld_safe --skip-grant-tables
шаг 3.
mysql -u root
шаг4.
use mysql;
шаг5.
show tables;
шаг6.
describe user;
step7.
update user set authentication_string=password('1111') where user='root';
логин с паролем 1111
источник
flush privileges
важен как последний шаг.Я тоже искал, и, вероятно, некоторые ответы подходят для некоторых ситуаций,
моя ситуация - Mysql 5.7 в системе Ubuntu 18.04.2 LTS:
(получить права root)
(установить пароль для пользователя root db + поэтапно реализовать безопасность)
# mysql_secure_installation
(предоставить доступ пользователю root через пароль вместо сокета)
(+ edit: видимо нужно снова установить пароль?)
(не устанавливайте "mySecretPassword" !!!)
# mysql -u root mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> set password for 'root'@'localhost' = PASSWORD('mySecretPassword'); mysql> FLUSH PRIVILEGES; mysql> exit; # service mysql restart
Большое спасибо zetacu (и erich ) за этот отличный ответ (после нескольких часов поиска ...)
Наслаждайтесь :-D
С.
Изменить (2020):
Этот метод больше не работает, см. Этот вопрос для справок в будущем ...
источник
В MySQL 8.0.4+
Чтобы обновить текущего пользователя root:
select current_user(); set password = 'new_password';
Чтобы обновить другого пользователя:
set password for 'otherUser'@'localhost' = 'new_password';
Чтобы установить политику паролей перед обновлением пароля:
set global validate_password.policy = 0; set password = 'new_password'; set password for 'otherUser'@'localhost' = 'new_password';
Другой / лучший способ обновить пароль root:
Хотите придерживаться аутентификации 5.x, чтобы можно было использовать устаревшие приложения?
На
my.cnf
Чтобы обновить root:
set global validate_password.policy = 0; alter user 'root'@'localhost' identified with mysql_native_password by 'new_password';
источник
Это сработало для меня -
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html
источник
Вам необходимо сбросить пароль! шаги для mac osx (проверено и работает) и ubuntu
Остановить MySQL
$ sudo /usr/local/mysql/support-files/mysql.server stop
Запустите его в безопасном режиме:
$ sudo mysqld_safe --skip-grant-tables
(строка выше - вся команда)
Это будет продолжающаяся команда до тех пор, пока процесс не будет завершен, поэтому откройте другое окно оболочки / терминала, войдите в систему без пароля:
$ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Запустить MySQL
sudo /usr/local/mysql/support-files/mysql.server start
ваш новый пароль - «пароль».
источник
Для MySQL 5.7.6 и новее:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Для MySQL 5.7.5 и ранее:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
источник
Для текущей последней версии mysql (8.0.16) ни один из этих ответов у меня не работал.
Посмотрев на несколько разных ответов и объединив их, я понял, что это сработало:
update user set authentication_string='test' where user='root';
Надеюсь это поможет.
источник
распространенная ошибка, с которой я время от времени сталкиваюсь, заключается в том, что я забываю
-p
опцию, поэтому вы уверены, что использовали:источник
В MySQL 5.7 пароль заменен на «authentication_string».
использовать
update user set authentication_string=password('myfavpassword') where user='root';
источник
Использование утилиты командной строки mysqladmin для изменения пароля MySQL:
mysqladmin --user=root --password=oldpassword password "newpassword"
Источник
источник
Пробовал ответить от @kta, но у меня не сработало.
Я использую MySQL 8.0
Это сработало для меня:
mysql>
SET PASSWORD FOR 'root'@'localhost' = 'yourpassword'
источник
Так много комментариев, но мне помог этот метод:
В моем случае после установки я получил службу mysql без пароля для пользователя root, и мне нужно было установить пароль для моей безопасности.
источник
Aug 07 16:21:55 ubuntupc sudo[93250]: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/mysqladmin -u root password 'my password'
остановить все службы вампа, выйти из вампа.
откройте блокнот и введите> УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'root' @ 'localhost' = ПАРОЛЬ ('');
затем сохраните его на диске c: с любым именем .. например, "c: /example.txt"
теперь перейдите к своему "wamp" falder wamp> bin> mysql> mysql (ваша версия)> bin в моем случае путь - "C: \ wamp \ bin \ mysql \ mysql5.6.17 \ bin"
теперь скопируйте свой путь, затем запустите cmd с помощью (ctrl + r), затем введите «cmd» (введите)
введите cd, затем щелкните правой кнопкой мыши по cmd и вставьте путь (введите) теперь введите (mysqld --init-file = C: \ example.txt) без фигурных скобок, затем (введите)
затем перезагрузите компьютер или откройте taskmgr и убейте mysqld.exe
запустите wamp и ваш пароль будет удален ...
источник
Для пользователей MacOS, если вы забыли свой пароль root, ответ @soharaK ( https://stackoverflow.com/a/28601069/5628856 ) хорош, но есть еще несколько приемов:
Если вы используете системные настройки для запуска сервера mysql, просто
sudo mysqld_safe --skip-grant-tables
может не сработать для вас.
Вы должны убедиться, что аргументы командной строки совпадают с конфигурацией запуска системы.
У меня работает следующая команда:
/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so --skip-grant-tables
Ты можешь использовать
проверить свои собственные.
источник
Или просто используйте интерактивную настройку:
источник
В Ubuntu
Замените
5.5
на вашу текущую версию, и вам будет предложено ввести новый пароль root.источник
источник