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


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

16 53

16 ответов:

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

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

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

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

Шаг 4: Настройка нового корня 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: установите новый пароль пользователя MySQL root

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

Шаг # 5: Остановить Сервер MySQL:

# /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

работал на меня и "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 без пароля.

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

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

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;
  • подключение к mysql в качестве пользователя root (используйте один из двух следующих методов)
    • войдите в систему как root и запустите mysql с помощью mysql -p введите текущий пароль root
    • войдите в систему как self и запустите mysql с помощью mysql -u root -p введите текущий пароль root
  • mysql> set password = password('');

готово! Не пароль root.

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

это работало для меня на 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';

(ТПХ @Станислав Караханов)

и самое последнее важное-это сбросить mysql service:

sudo service mysql restart

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

это не очень хорошая идея для редактирования

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

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

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

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

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

ошибка 1048( 23000): столбец "пароль" не может быть null

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

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

или

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

Это работает для меня.

ALTER USER 'root' @ 'localhost' идентифицируется с mysql_native_password по 'password'

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

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

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

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

    срок действия пароля ALTER USER 'root'@'localhost' истекает;

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

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

mysql -p SET PASSWORD = ""

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

Я использую nodejs и windows 10. Сочетание двух ответов сработало для меня.

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

затем:

restart;

надеюсь, что это поможет для других, у кого все еще есть проблема с этим.

синтаксис немного отличается в зависимости от версии. Из документов здесь: 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('');

мой вариант для 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

хотел поставить свои собственные 2cents здесь bcuz вышеуказанные ответы не работали для меня. На centos 7, mysql community v8, оболочка-это 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