Запуск контейнера MS SQL на Docker с кодировкой сервера Cyrillic_General_CI_AS

Microsoft SQL Server — одна из самых популярных систем управления базами данных (СУБД). Она поддерживает различные типы транзакционных и аналитических запросов, имеет удобный графический интерфейс для работы с данными и обеспечивает высокую производительность при работе с большими объёмами информации.

Работа с базами данных может потребоваться различным приложениям, поэтому важно уметь разворачивать СУБД на сервере или виртуальной машине. Один из способов сделать это — использовать Docker. Это платформа для разработки и доставки приложений, которая позволяет запускать программы в изолированных контейнерах. Благодаря этому снижается вероятность конфликта версий ПО и упрощается процесс обновления системы.

Однако при использовании Docker с Microsoft SQL Server могут возникнуть проблемы с кодировкой. По умолчанию используется UTF-8, но если данные хранятся в кириллической кодировке, то они будут отображаться неправильно. Чтобы решить эту проблему, нужно изменить кодировку сервера на Cyrillic_General_CI_AS. В этой статье я расскажу, как это сделать.

Шаг 1: Установка Docker
Перед тем как начать работу с Docker, необходимо установить его на свой компьютер. Для этого перейдите на официальный сайт проекта и скачайте последнюю версию для вашей операционной системы. После установки запустите Docker и убедитесь, что он работает корректно.

Шаг 2: Создание образа контейнера
Чтобы создать образ контейнера с Microsoft SQL Server, выполните следующую команду в терминале:
docker pull mcr.microsoft.com/mssql/server:2019-latest

Эта команда загрузит последний образ Microsoft SQL Server версии 2019. Если вы хотите использовать другую версию, замените «2019-latest» на соответствующий идентификатор образа.

Шаг 3: Запуск контейнера
Теперь, когда у нас есть образ, мы можем запустить контейнер с Microsoft SQL Server. Для этого выполните следующую команду:
docker run --name sqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrongPassword!' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

Здесь мы указываем имя контейнера («sqlserver»), принимаем лицензионное соглашение («ACCEPT_EULA=Y»), задаём пароль для пользователя SA («SA_PASSWORD=YourStrongPassword!») и пробрасываем порт 1433 внутрь контейнера и наружу ("-p 1433:1433").

Шаг 4: Изменение кодировки сервера
Чтобы изменить кодировку сервера на Cyrillic_General_CI_AS, нам нужно подключиться к контейнеру и выполнить несколько команд. Для этого выполните следующие шаги:

1. Остановите контейнер, если он запущен:
docker stop sqlserver

2. Подключитесь к контейнеру:
docker exec -it sqlserver /bin/bash

3. Войдите в систему как пользователь SA:
sqlcmd -S localhost -U sa -P YourStrongPassword!

4. Выполните следующие команды для изменения кодировки:
-- Изменение кодировки на Cyrillic_General_CI_AS
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CATION_FOR_PII = OFF;
GO

RECONFIGURE WITH OVERRIDE;
GO

EXEC sp_db_increased_compatibility 'Cyrillic_General_CI_AS';
GO

5. Перезапустите службу SQL Server:
service sqlserver restart

6. Теперь кодировка сервера должна быть изменена на Cyrillic_General_CI_AS.

Шаг 5: Проверка
Чтобы проверить, что кодировка была успешно изменена, попробуйте вставить кириллические символы в базу данных и убедитесь, что они отображаются корректно. Также можно использовать инструменты мониторинга, такие как SQL Server Management Studio, чтобы проверить настройки кодировки.
Поделиться:

Похожие публикации

Тут ничего нет

Нет комментариев