8.4.1.1 Встроенная подключаемая аутентификация
MySQL включает плагин mysql_native_password, реализующий встроенную аутентификацию; то есть, аутентификацию, основанную на методе хеширования паролей, используемом до появления подключаемой аутентификации.
Плагин аутентификации mysql_native_password устарел начиная с MySQL 8.0.34, по умолчанию отключен в MySQL 8.4 и удален начиная с MySQL 9.0.0.
В следующей таблице показаны имена плагинов на стороне сервера и клиента.
Таблица 8.14 Имена плагинов и библиотек для встроенной аутентификации паролей
| Плагин или файл | Имя плагина или файла |
|---|---|
| Плагин на стороне сервера | mysql_native_password |
| Плагин на стороне клиента | mysql_native_password |
| Файл библиотеки | Нет (плагины встроенные) |
В следующих разделах представлена информация об установке и использовании, специфичная для встроенной подключаемой аутентификации:
Дополнительную информацию об аутентификации с помощью плагинов в MySQL см. в разделе 8.2.17, «Подключаемая аутентификация».
Установка встроенной подключаемой аутентификации
Плагин mysql_native_password существует в серверной и клиентской формах:
Плагин на стороне сервера встроен в сервер, но по умолчанию отключен. Чтобы включить его, запустите MySQL Server с
--mysql-native-password=ONили включивmysql_native_password=ONв разделе[mysqld]файла конфигурации MySQL.Плагин на стороне клиента встроен в клиентскую библиотеку
libmysqlclientи доступен для любой программы, связанной сlibmysqlclient.
Использование встроенной подключаемой аутентификации
Программы клиентов MySQL в MySQL 8.4 (и новее) по умолчанию используют caching_sha2_password для аутентификации. Используйте параметр --default-auth для установки mysql_native_password в качестве плагина аутентификации по умолчанию для клиента, если это необходимо, как показано ниже:
$> mysql --default-auth=mysql_native_password ...
Отключение встроенной подключаемой аутентификации
В MySQL 8.4 плагин mysql_native_password на стороне сервера отключен по умолчанию. Чтобы сохранить его отключенным, убедитесь, что сервер запускается без указания параметра --mysql-native-password. Использование --mysql-native-password=OFF также работает для этой цели, но не является обязательным. Кроме того, не включайте mysql_native_password в файл конфигурации MySQL, чтобы сохранить его отключенным.
Когда плагин отключен, недоступны все операции, зависящие от него. В частности:
-
Определенные учетные записи пользователей, которые выполняют аутентификацию с помощью
mysql_native_password, получают ошибку при попытке подключения.$>
MYSQL -u userx -pERROR 1045 (28000): Access denied for user 'userx'@'localhost' (using password: NO)Сервер записывает эти ошибки в журнал сервера.
-
Попытки создания новой учетной записи пользователя или изменения существующей учетной записи пользователя, идентифицированной с помощью
mysql_native_password, также завершаются ошибкой.mysql>
CREATE USER userxx@localhost IDENTIFIED WITH 'mysql_native_password';ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded mysql>ALTER USER userxy@localhost IDENTIFIED WITH 'mysql_native_password';ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
Инструкции по включению плагина см. в разделе Установка встроенной подключаемой аутентификации.
© 2025 Oracle
Licensed under the GPLv2 License.