СправошнаяПоиск

MySQL - ошибка Unknown column 'password' in 'field list'

При обновлении или изменении пароля пользователя MySQL вы можете столкнуться с ошибкой, говорящей о том, что passwordстолбец неизвестен.

Рассмотрим следующий пример UPDATE:

 

UPDATE mysql.user
  SET Password = PASSWORD('root')
  WHERE User = 'root';

 

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

 

ERROR 1054 (42S22): Unknown column 'Password' in 'field list'

 

Это связано с тем, что версия MySQL 5.7 изменила колонку Password на authentication_string.

Если версия вашего сервера MySQL находится в диапазоне от 5.7.0 до 5.7.5 , вы можете изменить Password на authentication_string, как показано ниже:

 

UPDATE mysql.user
  SET authentication_string = PASSWORD('root')
  WHERE User = 'root';
-- Query OK, 0 rows affected (0.01 sec) 

 

Приведенный выше оператор должен работать, но вместо использования UPDATEоператора есть другой оператор, который рекомендуется для изменения паролей пользователей MySQL.

Кроме того, функция PASSWORD() устарела , начиная с версии MySQL > 5.7.5 , поэтому вы можете не выполнить оператор UPDATE для версии MySQL 5.7.6 и выше.

Чтобы изменить пароль пользователя MySQL , рекомендуется использовать операторALTER USER .

Синтаксис показан ниже:

 

ALTER USER user IDENTIFIED BY 'password_here';

 

Например, чтобы изменить rootпароль пользователя на abcd , используйте следующую инструкцию:

 

ALTER USER 'root'@'localhost' IDENTIFIED BY 'abcd';
-- Query OK, 0 rows affected (0.01 sec) 

 

Вам нужно добавить пользовательскую Hostчасть, как показано ниже (используя @'localhost'или @'%')

Вы можете найти Hostинформацию о вашем пользователе, используя следующий запрос SELECT:

 

SELECT User, Host FROM mysql.user;

 

Возвращаемый набор результатов будет аналогичен показанному ниже:

 

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| nathan           | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

 

Как только вы найдете Hostимя своего пользователя, просто добавьте его в ALTER USERоператор, как показано выше.

В заключение, это ALTER USER является рекомендуемым заявлением для изменения учетной записи пользователя MySQL в соответствии с документацией MySQL.

Использование UPDATEоператора и PASSWORD()функции — это старый способ изменения паролей пользователей MySQL, который больше не работает в последней стабильной версии MySQL.