2.9.4 Защита начальной учётной записи MySQL
Процесс установки MySQL включает инициализацию каталога данных, включая таблицы разрешений в базе данных системы mysql, которые определяют учётные записи MySQL. Подробности см. в разделе 2.9.1 «Инициализация каталога данных».
В этом разделе описывается, как установить пароль для начальной учётной записи root, созданной во время процедуры установки MySQL, если вы этого ещё не сделали.
Альтернативные способы выполнения процесса, описанного в этом разделе:
В Windows вы можете выполнить процесс во время установки с помощью MySQL Installer (см. раздел 2.3.3 «MySQL Installer для Windows»).
На всех платформах дистрибутив MySQL включает mysql_secure_installation, утилиту командной строки, которая автоматизирует большую часть процесса защиты установки MySQL.
На всех платформах доступен MySQL Workbench, предоставляющий возможность управления учётными записями пользователей (см. главу 29 «MySQL Workbench»).
Пароль может быть уже назначен для начальной учётной записи в следующих случаях:
В Windows при установке с помощью MySQL Installer у вас есть возможность назначить пароль.
При установке с помощью установщика macOS генерируется начальный случайный пароль, который установщик отображает пользователю в диалоговом окне.
При установке с помощью пакетов RPM генерируется начальный случайный пароль, который записывается в журнал ошибок сервера.
При установке с помощью пакетов Debian у вас есть возможность назначить пароль.
При ручном инициализации каталога данных с помощью mysqld --initialize mysqld генерирует начальный случайный пароль, помечает его как просроченный и записывает в журнал ошибок сервера. См. раздел 2.9.1 «Инициализация каталога данных».
Таблица разрешений mysql.user определяет начальную учётную запись пользователя MySQL и её права доступа. При установке MySQL создаётся только учётная запись суперпользователя 'root'@'localhost', которая имеет все права и может выполнять любые действия. Если у учётной записи root пустой пароль, ваша установка MySQL незащищена: любой может подключиться к серверу MySQL как root без пароля и получить все права.
Учётная запись 'root'@'localhost' также имеет строку в таблице mysql.proxies_priv, которая позволяет предоставить право PROXY для ''@'', то есть для всех пользователей и всех хостов. Это позволяет root настроить прокси-пользователей, а также делегировать другим учётным записям право на настройку прокси-пользователей. См. раздел 6.2.14 «Прокси-пользователи».
Чтобы назначить пароль для начальной учётной записи MySQL root, воспользуйтесь следующей процедурой. Замените root-password в примерах тем паролем, который вы хотите использовать.
Запустите сервер, если он не работает. Инструкции см. в разделе 2.9.2 «Запуск сервера».
У начальной учётной записи root может быть или не быть пароля. Выберите соответствующую процедуру:
-
Если учётная запись
rootсуществует со случайным начальным паролем, который истек, подключитесь к серверу какroot, используя этот пароль, затем выберите новый пароль. Это происходит, если каталог данных был инициализирован с помощью mysqld --initialize, либо вручную, либо с помощью установщика, который не предоставляет возможность указать пароль во время установки. Поскольку пароль существует, вы должны использовать его для подключения к серверу. Но поскольку пароль просрочен, вы не можете использовать учётную запись для каких-либо целей, кроме выбора нового пароля, пока вы его не выберите.Если вы не знаете начальный случайный пароль, посмотрите в журнал ошибок сервера.
-
Подключитесь к серверу как
root, используя пароль:$>
mysql -u root -pEnter password:(enter the random root password here) -
Выберите новый пароль, чтобы заменить случайный пароль:
mysql>
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
-
Если учётная запись
rootсуществует, но у неё нет пароля, подключитесь к серверу какrootбез пароля, затем назначьте пароль. Это происходит, если вы инициализировали каталог данных с помощью mysqld --initialize-insecure.-
Подключитесь к серверу как
rootбез пароля:$>
mysql -u root --skip-password -
Назначьте пароль:
mysql>
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
-
После назначения пароля для учётной записи root, вы должны указывать этот пароль при каждом подключении к серверу с использованием этой учётной записи. Например, для подключения к серверу с помощью клиента mysql используйте эту команду:
$> mysql -u root -p
Enter password: (enter root password here)
Чтобы остановить сервер с помощью mysqladmin, используйте эту команду:
$> mysqladmin -u root -p shutdown
Enter password: (enter root password here)
Дополнительную информацию о настройке паролей см. в разделе 6.2.10 «Назначение паролей учётным записям». Если вы забыли пароль учётной записи root после его установки, см. раздел B.3.3.2 «Как сбросить пароль root».
Чтобы настроить дополнительные учётные записи, см. раздел 6.2.7 «Добавление учётных записей, назначение привилегий и удаление учётных записей».
© 2025 Oracle
Licensed under the GPLv2 License.