не мог изменить пароль root mysql

Я должен изменить пароль 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, как только я уничтожаю его...

29
задан 28 June 2014 в 08:40

6 ответов

Сначала попробуйте использовать

mysql -u root -p

и введите пароль (если помните) при запросе входа в систему в качестве пользователя sql-корпуса (обратите внимание, что переключатель -p предназначен для ввода пароля).

Если вам действительно нужно сбросить ваш корневой пароль для mysql, вот простой способ - перенастройте пакет с помощью dpkg-reconfigure.

Простые шаги по сбросу пароля рута для mysql:

  1. Проверьте версию вашего mysql-сервера ;

    apt-cache политики mysql-сервера.
    

    и смотрите строку, показывающую установленную версию среди другой информации. Например, для моей установки это:

     Установлено: 5.5.37-0ubuntu0.12.04.1
    

    (Из этого я знаю, что в моей системе установлен mysql-сервер-5.5)

  2. Запустите переконфигурацию с:

    sudo dpkg-реконфигурируйте mysql-сервер-*.*.
    

    где mysql-server-*.* должен быть заменен на версию, которая у вас есть. (для меня это будет mysql-server-5.5). Это остановит демон базы данных. Затем появится подсказка, где вы должны будете ввести новый пароль и подтвердить реконфигурацию.

    snap1

    Демон будет автоматически запущен после завершения реконфигурации.

  3. Затем вы можете войти в систему с помощью:

    mysql -u root -p
    

    и запустите задачи администрирования базы данных.

Ссылки:

  1. https://help.ubuntu.com/community/MysqlPasswordReset [Который вскоре будет очищен, как указано на странице.]

  2. Ubuntu Server Guide, связанный с вашей конкретной версией.

44
ответ дан 28 June 2014 в 08:40

Создайте файл со следующим:

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

0
ответ дан 28 June 2014 в 08:40

Ссылка из этого блога:

Шаг 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
22
ответ дан 28 June 2014 в 08:40

В 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>
9
ответ дан 28 June 2014 в 08:40

Начиная с 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 /

3
ответ дан 28 June 2014 в 08:40

Из остальных ответов ничего не помогло. Это мое решение:

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
1
ответ дан 28 June 2014 в 08:40

Другие вопросы по тегам:

Похожие вопросы: