Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Вы можете восстановить пароль сервера базы данных 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

Ответ 2

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

Ответ 3

Если вам нужен пустой пароль, вы должны установить пароль в 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;

Ответ 4

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

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

Ответ 5

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

Ответ 6

Это сработало для меня на 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 @Stanislav Karakhanov)

И последнее важное: reset служба mysql:

sudo service mysql restart

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

Ответ 7

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

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

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

Ответ 8

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

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

Ответ 9

Ответ пользователя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';

Ответ 10

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

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

Ответ 11

Это из MySQL 8.0.13:

use mysql;

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

quit;

Ответ 12

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

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

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

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

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

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

Ответ 14

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

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

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

restart;

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

Ответ 15

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

Ответ 16

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

Ответ 17

Хотел поставить здесь свои 2цента, потому что вышеупомянутые ответы у меня не сработали. На сентос 7, MySQL сообщество 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

Ответ 18

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

Решения

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

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

Ответ 19

Я заметил, что некоторые из этих решений выше устарели.

Чтобы установить пустой пароль, просто выполните следующие действия:

mysql -u root -p

use mysql

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

\q (to quit)

now run: mysql -u root

Теперь вы сможете запускать MySQL без пароля.

Ответ 20

После поиска часов я нашел это. просто смените пароль на что-либо, содержащее цифры в верхнем регистре и специальные символы.