Я должен изменить пароль root своей локальной mysql установки, но это woudln't позволило мне. Я попробовал это:
$ sudo /etc/init.d/mysql stop
* Stopping MySQL database server mysqld [ OK ]
[1]- Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
[2]+ Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
reg@regDesktopHome:~$ sudo mysqld --skip-grant-tables &
[1] 13651
reg@regDesktopHome:~$ 140627 19:02:02 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
reg@regDesktopHome:~$ mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
reg@regDesktopHome:~$ sudo mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[1]+ Exit 1 sudo mysqld --skip-grant-tables
Как я могу получить сброс пароля? отредактируйте 1, я получил это:
$ ps ax| grep mysql
16515 ? Ssl 0:00 /usr/sbin/mysqld
16551 pts/23 S+ 0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ sudo kill -9 16515
reg@regDesktopHome:~/semios/v3upgrade$ ps ax| grep mysql
16678 ? Ssl 0:00 /usr/sbin/mysqld
16715 pts/23 S+ 0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
похож на процесс, автоматически перезапускает mysql, как только я уничтожаю его...
Сначала попробуйте использовать
mysql -u root -p
и введите пароль (если помните) при запросе входа в систему в качестве пользователя sql-корпуса (обратите внимание, что переключатель -p
предназначен для ввода пароля).
Если вам действительно нужно сбросить ваш корневой пароль для mysql, вот простой способ - перенастройте пакет с помощью dpkg-reconfigure
.
Проверьте версию вашего mysql-сервера
;
apt-cache политики mysql-сервера.
и смотрите строку, показывающую установленную версию среди другой информации. Например, для моей установки это:
Установлено: 5.5.37-0ubuntu0.12.04.1
(Из этого я знаю, что в моей системе установлен mysql-сервер-5.5
)
Запустите переконфигурацию с:
sudo dpkg-реконфигурируйте mysql-сервер-*.*.
где mysql-server-*.*
должен быть заменен на версию, которая у вас есть. (для меня это будет mysql-server-5.5
). Это остановит демон базы данных. Затем появится подсказка, где вы должны будете ввести новый пароль и подтвердить реконфигурацию.
Демон будет автоматически запущен после завершения реконфигурации.
Затем вы можете войти в систему с помощью:
mysql -u root -p
и запустите задачи администрирования базы данных.
Ссылки:
https://help.ubuntu.com/community/MysqlPasswordReset [Который вскоре будет очищен, как указано на странице.]
Ubuntu Server Guide, связанный с вашей конкретной версией.
Создайте файл со следующим:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Остановите сервер mysql и запустите это:
mysqld_safe --init-file=/home/me/mysql-init &
Подробнее см. Здесь: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Шаг 1: Остановите службу MySQL.
sudo service mysql stop
Шаг 2: Убейте все запущенные mysqld.
sudo killall -9 mysqld
Шаг 3: Запуск mysqld в безопасном режиме.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Шаг 4: Запустите клиент mysql
mysql -u root
Шаг 5: После успешного входа в систему выполните эту команду, чтобы изменить любой пароль.
FLUSH PRIVILEGES;
Шаг 6: Вы можете обновить пароль root mysql.
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
для mysql> 5.7 используйте это вместо вышеуказанного:
UPDATE mysql.user SET authentication_string=PASSWORD('newpwd') WHERE User='root';
Шаг 7: Выполните эту команду.
FLUSH PRIVILEGES;
Шаг 8: Закройте консоль mysql
exit
Шаг 9: Убейте mysqld_safe и запустите mysql
sudo killall mysqld_safe && sudo service mysql start
В Ubuntu 16.04 и mysql-server-5.7
правильный ответ - последний комментарий olafure, dpkg-reconfigure mysql-server -5.7
больше не работает.
sudo service mysql stop
sudo killall mysqld
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
Теперь в консоли mysql > mysql
USE mysql;
UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root';
FLUSH PRIVILEGES;
\q
Перезапустите хороший mysql
процесс
sudo killall mysqld
sudo service mysql start
Проверьте ваш новый пароль
mysql -u root -p
Enter password: newpass
mysql>
Начиная с MySQL 5.7 , во время начальной установки, если вы оставите пароль пустым, то для этого пользователя, аутентификация будет основана на плагине auth_socket
.
Правильный способ изменить пароль будет:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
https://www.percona.com/blog/2016/03/16/change-user -password-in-mysql-5-7-with-plugin-auth_socket /
Из остальных ответов ничего не помогло. Это мое решение:
sudo service mysql stop
sudo mysqld_safe &
sudo mysql -u root
Там:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;
QUIT;
Затем:
sudo killall mysqld
sudo service mysql start
sudo mysql -u root -p