Spec-Zone.ru › MySQL 8.4

2.9.4 Защита начальной учётной записи MySQL

Процесс установки MySQL включает инициализацию каталога данных, включая таблицы разрешений в схеме системы mysql, которые определяют учётные записи MySQL. Подробности см. в разделе 2.9.1, «Инициализация каталога данных».

В этом разделе описывается, как назначить пароль начальной учётной записи root, созданной во время установки MySQL, если вы этого ещё не сделали.

Примечание

Альтернативные способы выполнения процесса, описанного в этом разделе:

  • В Windows вы можете выполнить этот процесс во время установки с помощью MySQL Configurator (см. раздел 2.3.2, «Настройка: использование MySQL Configurator»).

  • На всех платформах дистрибутив MySQL включает утилиту командной строки mysql_secure_installation, которая автоматизирует большую часть процесса защиты установки MySQL.

  • На всех платформах доступен MySQL Workbench, который позволяет управлять учётными записями пользователей (см. главу 33, MySQL Workbench).

Пароль может быть уже назначен для начальной учётной записи в следующих случаях:

  • В Windows при установке с помощью MSI-инсталлятора и MySQL Configurator у вас есть возможность назначить пароль.

  • При установке с помощью 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 настроить прокси-пользователей, а также делегировать другим учётным записям право на настройку прокси-пользователей. См. раздел 8.2.19, «Прокси-пользователи».

Для назначения пароля для начальной учётной записи MySQL root используйте следующую процедуру. Замените root-password в примерах паролем, который вы хотите использовать.

Запустите сервер, если он не работает. Инструкции см. в разделе 2.9.2, «Запуск сервера».

У начальной учётной записи root может или не может быть пароль. Выберите ту процедуру, которая вам подходит:

  • Если учётная запись root существует со случайным начальным паролем, который просрочен, подключитесь к серверу как root с этим паролем, а затем выберите новый пароль. Такая ситуация возникает, если каталог данных был инициализирован с помощью mysqld --initialize, либо вручную, либо с помощью инсталлятора, который не даёт вам возможность указать пароль во время установки. Поскольку пароль существует, вы должны использовать его для подключения к серверу. Но поскольку пароль просрочен, вы не можете использовать учётную запись для никаких целей, кроме выбора нового пароля, пока вы не выберете его.

    1. Если вы не знаете начальный случайный пароль, посмотрите в журнал ошибок сервера.

    2. Подключитесь к серверу как root с использованием пароля:

      $> mysql -u root -p
      Enter password: (enter the random root password here)
      
    3. Выберите новый пароль для замены случайного:

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
      
  • Если учётная запись root существует, но у неё нет пароля, подключитесь к серверу как root без пароля, а затем назначьте пароль. Такая ситуация возникает, если вы инициализировали каталог данных с помощью mysqld --initialize-insecure.

    1. Подключитесь к серверу как root без пароля:

      $> mysql -u root --skip-password
      
    2. Назначьте пароль:

      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)
Примечание

Дополнительную информацию о настройке паролей см. в разделе 8.2.14, «Назначение паролей учётным записям». Если вы забудете свой пароль root после его установки, см. раздел B.3.3.2, «Как сбросить пароль root».

Для настройки дополнительных учётных записей см. раздел 8.2.8, «Добавление учётных записей, назначение привилегий и удаление учётных записей».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/default-privileges.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API