Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
    • Все инструкции
      • Подключение к базе данных
      • SQL-запросы в Yandex WebSQL
      • Управление базами данных
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Получить список баз данных в кластере
  • Создать базу данных
  • Удалить базу данных
  • Установить режим SQL
  • Изменить набор символов и правила их сравнения
  1. Пошаговые инструкции
  2. Базы данных
  3. Управление базами данных

Управление базами данных в Managed Service for MySQL®

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 24 апреля 2025 г.
  • Получить список баз данных в кластере
  • Создать базу данных
  • Удалить базу данных
  • Установить режим SQL
  • Изменить набор символов и правила их сравнения

Вы можете добавлять и удалять базы данных, просматривать информацию о них, а также управлять некоторыми настройками баз данных с помощью интерфейсов Managed Service for MySQL®.

Важно

Вы не можете управлять базами данных с помощью команд SQL. Однако вы можете выполнять операцию ALTER DATABASE.

Получить список баз данных в кластереПолучить список баз данных в кластере

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Базы данных.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список баз данных в кластере, выполните команду:

yc managed-mysql database list \
   --cluster-name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.list и выполните запрос, например, с помощью cURL:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/databases'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService/List и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/database_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.mysql.v1.DatabaseService.List
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Создать базу данныхСоздать базу данных

Примечание

В каждом кластере вы можете создать не более 1000 баз данных.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.

  2. Нажмите на имя нужного кластера.

  3. Если владельцем новой базы данных должен стать еще не существующий пользователь, создайте его.

  4. Выберите вкладку Базы данных.

  5. Нажмите кнопку Создать базу данных.

  6. Введите имя для базы данных и нажмите кнопку Создать.

    Имя базы может содержать латинские буквы, цифры, дефис и подчеркивание. Максимальная длина имени 63 символа. Имена mysql, sys, information_schema и performance_schema зарезервированы для собственных нужд Managed Service for MySQL®. Создавать БД с этими именами нельзя.

  7. Выдайте привилегии на доступ к созданной базе данных нужным пользователям кластера.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать базу данных в кластере:

  1. Посмотрите описание команды CLI для создания БД:

     yc managed-mysql database create --help
    
  2. Выполните команду создания БД:

    yc managed-mysql database create <имя_БД> --cluster-name=<имя_кластера>
    

    Имя базы может содержать латинские буквы, цифры, дефис и подчеркивание. Максимальная длина имени 63 символа. Имена mysql, sys, information_schema и performance_schema зарезервированы для собственных нужд Managed Service for MySQL®. Создавать БД с этими именами нельзя.

    Имя кластера можно запросить со списком кластеров в каталоге.

    Managed Service for MySQL® запустит операцию создания базы данных.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Добавьте ресурс yandex_mdb_mysql_database:

    resource "yandex_mdb_mysql_database" "<имя_БД>" {
      cluster_id = "<идентификатор_кластера>"
      name       = "<имя_БД>"
    }
    

    Имя базы может содержать латинские буквы, цифры, дефис и подчеркивание. Максимальная длина имени 63 символа. Имена mysql, sys, information_schema и performance_schema зарезервированы для собственных нужд Managed Service for MySQL®. Создавать БД с этими именами нельзя.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.create и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/databases' \
        --data '{
                  "databaseSpec": {
                    "name": "<имя_БД>"
                  }
                }'
    

    Имя базы может содержать латинские буквы, цифры, дефис и подчеркивание. Максимальная длина имени 63 символа. Имена mysql, sys, information_schema и performance_schema зарезервированы для собственных нужд Managed Service for MySQL®. Создавать БД с этими именами нельзя.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService/Create и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/database_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "database_spec": {
                "name": "<имя_БД>"
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.DatabaseService.Create
    

    Имя базы может содержать латинские буквы, цифры, дефис и подчеркивание. Максимальная длина имени 63 символа. Имена mysql, sys, information_schema и performance_schema зарезервированы для собственных нужд Managed Service for MySQL®. Создавать БД с этими именами нельзя.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Удалить базу данныхУдалить базу данных

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Базы данных.
  3. Нажмите значок в строке нужной БД и выберите пункт Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы удалить базу данных, выполните команду:

 yc managed-mysql database delete <имя_БД> --cluster-name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Удалите ресурс yandex_mdb_mysql_database с именем удаляемой базы данных.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.delete и выполните запрос, например, с помощью cURL:

    curl \
        --request DELETE \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService/Delete и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/database_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "database_name": "<имя_БД>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.DatabaseService.Delete
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Прежде чем создать новую базу с тем же именем, дождитесь завершения операции удаления, иначе будет восстановлена удаляемая база. Статус операции можно получить вместе со списком операций в кластере.

Установить режим SQLУстановить режим SQL

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

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.
  3. В блоке Настройки СУБД нажмите кнопку Настроить.
  4. В списке настроек найдите параметр sql_mode.
  5. Задайте набор режимов SQL с помощью выпадающего списка. Чтобы вернуть настройки по умолчанию, нажмите кнопку Сбросить.
  6. Нажмите кнопку Сохранить в диалоговом окне настроек СУБД.
  7. Нажмите кнопку Сохранить изменения.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Задайте нужные режимы SQL в значении параметра --set, например:

yc managed-mysql cluster update-config \
  --name <имя_кластера> \
  --set '"sql_mode=NO_KEY_OPTIONS,NO_TABLE_OPTIONS"'

Обратите внимание на кавычки: значением параметра должна стать вся строка, включая часть sql_mode=.

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Задайте нужные режимы SQL в значении параметра sql_mode блока mysql_config, например:

    resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
      ...
      mysql_config = {
        sql_mode = "<список_режимов_SQL>"
        ...
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:

  • создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
  • изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
  • удаление кластера — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "configSpec.mysqlConfig_<версия_MySQL®>",
                  "configSpec": {
                    "mysqlConfig_<версия_MySQL®>": {
                      "sqlMode": [
                        "<режим_SQL_1>", "<режим_SQL_2>", ..., "<режим_SQL_N>"
                      ]
                    }
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • configSpec.mysqlConfig_<версия_MySQL®>.sqlMode — список режимов SQL. Доступные режимы см. в документации MySQL®:

      • для версии 5.7;
      • для версии 8.0.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "config_spec.mysql_config_<версия_MySQL®>"
                ]
              },
              "config_spec": {
                "mysql_config_<версия_MySQL®>": {
                  "sql_mode": [
                    "<режим_SQL_1>", "<режим_SQL_2>", ..., "<режим_SQL_N>"
                  ]
                }
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • config_spec.mysql_config_<версия_MySQL®>.sql_mode — список режимов SQL. Доступные режимы см. в документации MySQL®:

      • для версии 5.7;
      • для версии 8.0.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить набор символов и правила их сравненияИзменить набор символов и правила их сравнения

Чтобы установить настройки символов (CHARACTER SET, COLLATE) для базы данных:

  1. Подключитесь к базе данных с помощью учетной записи ее владельца или пользователя с привилегией ALTER для этой базы данных.

  2. Выполните запрос ALTER DATABASE:

    ALTER DATABASE <имя_БД> CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_unicode_ci';
    
  3. Чтобы настройки изменились не только для самой базы данных, но и для таблиц в ней, сконвертируйте таблицы с теми же настройками:

    ALTER TABLE <имя_БД>.<имя_таблицы> CONVERT TO CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
    

Была ли статья полезна?

Предыдущая
SQL-запросы в Yandex WebSQL
Следующая
Управление пользователями
Проект Яндекса
© 2025 ООО «Яндекс.Облако»