it-swarm.com.ru

Как установить пароль root на ноль

Как я могу изменить пароль для root пользователя MySQL на null - то есть без пароля или '' - из клиента командной строки MySQL?

54
Stormshadow

Вы можете восстановить пароль сервера базы данных MySQL, выполнив пять простых шагов.

Шаг # 1: остановить процесс сервера MySQL.

Шаг № 2: Запустите процесс сервер/демон MySQL (mysqld) с параметром --skip-grant-tables, чтобы он не запрашивал пароль.

Шаг № 3: Подключитесь к серверу mysql от имени пользователя root.

Шаг # 4: Установить новый пароль учетной записи root для mysql, т.е. сбросить пароль mysql.

Шаг № 5: выйдите и перезапустите сервер MySQL.

Вот команды, которые нужно вводить для каждого шага (войдите в систему как пользователь root):

Шаг # 1: остановить службу MySQL

# /etc/init.d/mysql stop

Результат:

Stopping MySQL database server: mysqld.

Шаг № 2: Запустите сервер MySQL без пароля:

# mysqld_safe --skip-grant-tables &

Результат:

[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started

Шаг № 3: подключиться к серверу mysql с помощью клиента mysql:

# mysql -u root

Результат:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Шаг № 4: установка нового пароля пользователя root MySQL

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

Шаг № 5: остановить MySQL Server:

# /etc/init.d/mysql stop

Результат:

Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+  Done                    mysqld_safe --skip-grant-tables

Шаг № 6: Запустите сервер MySQL и протестируйте его

# /etc/init.d/mysql start
# mysql      
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 
# mysql -u root -p

Источник: http://www.cyberciti.biz/tips/recover-mysql-root-password.html

13
Vladislav Rastrusny

Работал для меня и "5.7.11 MySQL Community Server":

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

Мне также пришлось изменить поле «плагин», потому что оно было установлено в «auth_socket».

После этого я мог подключиться как mysql -u root без пароля.

66
Stanislav Karakhanov

Если вам нужен пустой пароль, вы должны установить для него значение null и не использовать хэш-функцию Password, как таковую:

В командной строке:

Sudo service mysql stop
Sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot

В MySQL:

use mysql;
update user set password=null where User='root';
flush privileges;
quit;
52
user64141
  • подключитесь к mysql как пользователь root (используйте один из двух следующих методов)
    • войдите в систему как root и запустите mysql, используя mysql -p, введите текущий пароль root
    • войдите под своим именем и запустите mysql с помощью mysql -u root -p, введите текущий пароль root 
  • mysql> set password = password('');

Готово! Нет пароля root.

50
bsd
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
19
kta

Это работало для меня на Ubuntu 16.04 с v5.7.15 MySQL:

Во-первых, убедитесь, что у вас установлен mysql-клиент (Sudo apt-get install mysql-client).

Откройте терминал и войдите:

mysql -uroot -p

(затем введите свой пароль)

После этого:

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

(tnx @ Станислав Караханов)

И самое важное - сброс службы mysql :

Sudo service mysql restart

Теперь вы сможете войти (без пароля) также с помощью MySQL Workbench.

13
djordjea

Не стоит редактировать базу данных mysql напрямую.

Я предпочитаю следующие шаги:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ''; 
mysql> flush privileges;
4
Zendo June

Для MySQL 8.0 просто:

SET PASSWORD FOR 'root'@'localhost' = '';

4
Nicolas Rivas

Меня устраивает.

ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАНО С mysql_native_password BY 'password'

1
user9903233

Ответ пользователя 64141

use mysql;
update user set password=null where User='root';
flush privileges;
quit;

не работал для меня в MariaDB 10.1.5 (предполагается, что замена MySQL). Хотя я не тестировал его в MySQL 5.6, чтобы узнать, является ли это восходящим изменением, я получил ошибку:

ОШИБКА 1048 (23000): столбец «Пароль» не может быть пустым

Но замена нуля пустыми одинарными или двойными кавычками работала нормально.

update user set password='' where User='root';

или же

update user set password="" where User='root';
1
user3430227

Мой вариант для MySQL 5.7:

Остановить службу mysql:

$ Sudo service mysql stop

Запуск в безопасном режиме:

$ Sudo mysqld_safe --skip-grant-tables --skip-networking

(над строкой целая команда)

Откройте новое окно терминала:

$ mysql -u root

$ mysql use mysql;

$ mysql update user set authentication_string=password('password') where user='root';

$ mysql update user set plugin="mysql_native_password" where User='root';

$ mysql flush privileges;
$ mysql quit;

Запустите службу mysql:

$ Sudo service mysql start
0
Elena

все, потому что вы установили версию MySQL более 5.6

Решения

1. Вы можете ухудшить MySQL версию решения

2 перенастроить аутентификацию на аутентификацию собственного или устаревшего типа, используя
настроить параметр

0
Vinayak Shedgeri

Я использую nodejs и windows 10. Мне помогло сочетание двух ответов.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ''; 
mysql> flush privileges;

с последующим:

restart;

Надеюсь, это поможет другим, у кого все еще есть проблемы с этим.

0
Kaushik

Для подключения к MySQL без пароля:

mysql -p SET PASSWORD = ""

https://dev.mysql.com/doc/refman/5.7/ru/set-password.html

0
Tom DE RUDDER

Если вы знаете свой Root-пароль и просто хотите сбросить его, выполните следующие действия:

  • Запустите MySQL Service из панели управления> Администрирование> Службы. (только если он был остановлен вами ранее! В противном случае просто пропустите этот шаг)

  • Запустите MySQL Workbench

  • Введите эту команду/строку SQL

    ALTER USER 'root' @ 'localhost' PASSWORD EXPIRE;

Чтобы сбросить любой другой пароль пользователя ... просто введите другое имя пользователя вместо root. 

0
Hamid Faisal

Синтаксис немного отличается в зависимости от версии. Из документов здесь: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

MySQL 5.7.6 и позже:

ALTER USER 'root'@'localhost' IDENTIFIED BY '';

MySQL 5.7.5 и более ранние:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
0
nofunatall

Это из MySQL 8.0.13:

use mysql;

update user set authentication_string=null  where user='root';

quit;
0
saltfish

Хотел поставить здесь свои 2цента, потому что вышеупомянутые ответы у меня не сработали .. На centos 7, mysql community v8, Shell - bash.

Правильные команды будут следующими:

# start mysql without password checking
systemctl stop mysqld 2>/dev/null
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" &&
systemctl start mysqld

# set default password to nothing
mysql -u root mysql <<- 'EOF'
    FLUSH PRIVILEGES;
    UNINSTALL COMPONENT 'file://component_validate_password';
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
    FLUSH PRIVILEGES;
    INSTALL COMPONENT 'file://component_validate_password';
EOF

# restart mysql normally
systemctl restart mysqld

тогда вы можете войти без пароля:

mysql -u root
0
Tyler Moore