Как сделать изменить пароль MySQL 'root' с помощью MySQL v5.7?

Для установки Centos вам понадобится

  1. Виртуальная машина для Centos, на Mac os вы можете попробовать. virtualbox или parallel.

  2. Попробуйте напрямую на ПК, но это приведет к удалению текущей ОС. или вы можете разбить жесткий диск на разделы и получить двойную загрузку, или установить на разные внутренние или внешние hd (linux может работать на usb устройствах, конечно usb3, usb2 работает, но очень медленно)

Невозможно запустить linux нажатием на dvd dmg/img! Может быть в будущем...

14
22.06.2016, 15:59
5 ответов

В MySQL 5.7 поле password в поле таблицы mysql.user было удалено, теперь имя поля authentication_string.

Сначала выберите базу данных:

mysql> use mysql;

А затем покажите таблицы:

mysql> show tables;

Вы найдете таблицу user и увидите ее поля:

mysql> describe user;

Вы поймете, что нет поля с именем password, поле пароля называется authentication_string. Поэтому просто сделайте следующее:

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

Как предложил @Rui F Ribeiro, в качестве альтернативы вы можете выполнить:

mysql> SET PASSWORD FOR 'root' = PASSWORD('new_password');
25
27.01.2020, 19:50

MySQL способ изменения пароля: SET PASSWORD

SET PASSWORD FOR 'root' = PASSWORD('new_password');

см. Справочное руководство MySQL 5.7 / ... / SET PASSWORD Syntax

Оператор SET PASSWORD назначает пароль учетной записи пользователя MySQL, заданный в виде открытого текста (незашифрованного) или зашифрованного значения:

 'auth_string' представляет пароль в открытом виде. {{ 1}} 
 'hash_string' представляет собой зашифрованный пароль. 
 

Принятый ответ от Рахула показывает, как обновить пароль с помощью оператора DML .

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

Предупреждение: это не официальный и не поддерживаемый способ. Это может вызвать проблемы, если вы не знаете, что делаете. Не забудьте ПРИВИЛЕГИИ ПРОМЫВКИ .

Для большинства операций, таких как создание пользователя, изменение его привилегий или изменение его пароля, вы захотите использовать высокоуровневые операторы. Они не только проще в использовании, но и они совместимы с большим количеством версий MySQL, но они также не позволят вам сделать ошибок (конечно, не забудьте установить режим sql «NO_AUTO_CREATE_USER»). Они даже обычно хорошо работают в среде, враждебной MyISAM , например, в кластере Galera.

Прекратите использование ПРИВИЛЕГИЙ ПРОМЫВКИ

Используйте GRANT , REVOKE , SET PASSWORD или RENAME USER , а не прямой DML. заявления.

Обновление: SET PASSWORD ... = PASSWORD ('auth_string') Синтаксис объявлен устаревшим в MySQL 5.7.6 и будет удален в будущем выпуске MySQL.

3
27.01.2020, 19:50

mysqladmin -u user-name password -p "oldpassword" "newpass"

если вы можете войти, попробуйте это "" не будет работать попробуйте '' одинарная кавычка

обновить пароль, заданный пользователем = PASSWORD ("newpass"), где User = 'ENTER-USER-NAME-HERE';

1
27.01.2020, 19:50

Для этой проблемы я использовал простой и грубый метод, переименовав имя поля в пароль, причина этого в том, что я использую программное обеспечение Mac navicat premium в визуальной ошибке операции: Неизвестный столбец «пароль» в «Список полей» ', само программное обеспечение использует пароль, так что я не могу легко работать. Поэтому я выполняю root в командной строке базы данных, запускаю

Use mysql;

И затем изменяю имя поля:

ALTER TABLE user CHANGE authentication_string password text;

В конце концов, нормально.

-1
27.01.2020, 19:50

En mi caso

mysql.server start
$ mysql -uroot
mysql> update user set authentication_string=password('123456') where User='root';
mysql> exit;
mysql.server restart (if you not restart, connection will not work.)

Creo que su comando de actualización es correcto, pero necesita reiniciar su servidor mysql.

0
27.01.2020, 19:50

Теги

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