Как мне изменить пароль для root
пользователя MySQL на null
- то есть пароль или ''
- из клиента командной строки MySQL?
Как установить пароль root для null
Ответ 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
- введите имя пользователя root и запустите mysql с помощью
-
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.
Ответ 13
Для подключения к mysql без пароля:
mysql -p
SET PASSWORD = ""
Ответ 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
После поиска часов я нашел это. просто смените пароль на что-либо, содержащее цифры в верхнем регистре и специальные символы.