Linux Debian Jessie установка сервера Microsoft SQL Server с использованием LXC: различия между версиями
Материал из support.qbpro.ru
imported>Vix (Новая страница: «==Установка через LXC в Linux Debian Jessie== * ставим службу LXC как описано тут: [LXC debian 8] * создаем кон…») |
imported>Vix |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
==Установка через LXC в Linux Debian | =='''Установка через LXC в Linux Debian Jessi'''e== | ||
* ставим службу LXC как описано тут: [LXC debian 8] | * ставим службу LXC как описано тут: [[LXC debian 8]] | ||
* создаем контейнер для Ubuntu версией не ниже 10.04 | * создаем контейнер для Ubuntu версией не ниже '''10.04''' | ||
lxc-create -t download -n xmssql -- -d ubuntu -r trusty -a | lxc-create -t download -n xmssql -- -d ubuntu -r trusty -a amd64 | ||
или lxc-create -t download -n xmssql -- -d ubuntu -r trusty -a amd64 --keyserver hkp://p80.pool.sks-keyservers.net:80 | |||
* '''ВНИМАНИЕ! MSSQL- ставится только на архитектуру - amd64''' | |||
* после установки вас попросят создать внутри контейнера пользователя, запускаем контейнер: | * после установки вас попросят создать внутри контейнера пользователя, запускаем контейнер: | ||
lxc-start -n xmssql | lxc-start -n xmssql | ||
* так как пользователя внутри еще нет, то входим через chroot | * так как пользователя внутри еще нет, то входим через '''chroot''' | ||
lxc-attach -n xmssql | lxc-attach -n xmssql | ||
adduser user | adduser user | ||
* создаем пароль для пользователя user | * создаем пароль для пользователя '''user''' | ||
usermod user -G sudo | usermod user -G sudo | ||
* добавляем пользователя user в группу sudo | * добавляем пользователя '''user''' в группу '''sudo''' | ||
* теперь правим наш конфиг контейнера для доступа в сеть: | * теперь правим наш конфиг контейнера для доступа в сеть: | ||
Строка 38: | Строка 40: | ||
#Количество /dev/tty | #Количество /dev/tty | ||
lxc.tty = 6 | lxc.tty = 6 | ||
# Network configuration | # Network configuration | ||
#lxc.network.type = empty | #lxc.network.type = empty | ||
Строка 53: | Строка 55: | ||
lxc.start.order = 100 | lxc.start.order = 100 | ||
* чтоб было понятно, в системе уже создан интерфейс br0 в который подключен только виртуальный интерфейс virt0 (uml-utilites) | * чтоб было понятно, в системе уже создан интерфейс '''br0''' в который подключен только виртуальный интерфейс '''virt0 (uml-utilites)''' | ||
* поэтому мы подключаем наш мост br0-1 на br0, имя внутреннего интерфейса в боксе eth0, его мак-адрес тоже указываем. | * поэтому мы подключаем наш мост '''br0-1''' на '''br0''', имя внутреннего интерфейса в боксе '''eth0''', его '''мак-адрес''' тоже указываем. | ||
* в боксе прописываем настройки вручную для eth0, или подключаем на хосте сервер dhcp и указываем ему интерфейс br0 | * в боксе прописываем настройки вручную для '''eth0''', или подключаем на хосте сервер '''dhcp''' и указываем ему интерфейс '''br0''' | ||
* теперь стартуем наш бокс и подключаемся для установки необходимых пакетов для дальнейшей работы: | * теперь стартуем наш бокс и подключаемся для установки необходимых пакетов для дальнейшей работы: | ||
lxc-start -n xmssql | lxc-start -n xmssql | ||
Строка 61: | Строка 63: | ||
$ | $ | ||
$ sudo apt-get update | $ sudo apt-get update | ||
* если внешний интерфейс на хосте в IPTABLES: | * если внешний интерфейс на хосте в '''IPTABLES''': | ||
... | ... | ||
nat | nat | ||
Строка 77: | Строка 79: | ||
sudo apt-get install curl wget mc ssh htop iftop nmap resolvconf dnsutils aptitude | sudo apt-get install curl wget mc ssh htop iftop nmap resolvconf dnsutils aptitude | ||
* теперь можно выйти из консоли lxc-console | * теперь можно выйти из консоли '''lxc-console''' | ||
$ exit | $ exit | ||
... | ... | ||
* выход из консоли полностью: Ctr+a и q | * выход из консоли полностью: '''Ctr+a и q''' | ||
* теперь подключаемся через ssh | * теперь подключаемся через '''ssh''' | ||
ssh user@[ip вашего контейнера] | ssh user@[ip вашего контейнера] | ||
* все, мы в нормально настроенной Ubuntu... | * все, мы в нормально настроенной '''Ubuntu'''... | ||
* Локализация Ubuntu: | * '''Локализация Ubuntu''': | ||
sudo apt-get install language-pack-ru | sudo apt-get install language-pack-ru | ||
Строка 97: | Строка 99: | ||
lxc-start -n xmssql | lxc-start -n xmssql | ||
* входим через ssh и проверяем: | * входим через '''ssh''' и проверяем: | ||
sudo locale | sudo locale | ||
Строка 119: | Строка 121: | ||
LC_ALL= | LC_ALL= | ||
* теперь приступим к установке MsSQL, [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-ubuntu взято тут] | * теперь приступим к установке '''MsSQL''', [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-ubuntu взято тут] | ||
$ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - | $ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - | ||
$ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list | $ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list | ||
$ sudo apt-get update | $ sudo apt-get update | ||
$ sudo apt-get install -y mssql-server | $ sudo apt-get install -y mssql-server | ||
* после установки вас попросят настроить сервер: | |||
$ | * после установки вас попросят настроить сервер '''MsSQL''': | ||
$ sudo mssql-conf setup | |||
* указываем пароль не менее 8 символов и должны быть хоть одна большая буква и 2-3 цифры | |||
* теперь установка '''mssql-tools''' - [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu взято тут]: | |||
$ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - | |||
$ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list | |||
$ sudo apt-get update | |||
$ sudo apt-get install mssql-tools unixodbc-dev | |||
* для удобства работы пробросим '''симлики в /usr/local/bin''' | |||
$ sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin/sqlcmd | |||
* все, можно начинать работать с сервером '''MsSQL'''. | |||
* По поводу подключения читать [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-connect-and-query-sqlcmd Тут...] | |||
==[[Install MS SQL Server on Debian Jessie (through Docker)]]== | |||
==Настройка базы для работы с ПО== | |||
Часто Администраторы сталкиваются при настройке сервера '''MSSQL''' с проблемой '''схемы для символьных полей в базе'''.<br> | |||
Ошибка может выглядеть так: | |||
... | |||
Cannot resolve the collation conflict between "Cyrillic_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. | |||
... | |||
Причина подробно описана [http://rsdn.org/article/db/collation.xml Тут...] | |||
'''Для исправления этой проблемы делаем следующее:''' | |||
* Останавливаем сервер mssql: | |||
sudo systemctl stop mssql-server | |||
* Входим в каталог программы: | |||
cd /opt/mssql/bin | |||
* Выполняем команду изменения схемы для символьных полей в базе: | |||
./mssql-conf set-collation | |||
Enter the collation: Cyrillic_General_CI_AS | |||
... | |||
... | |||
The default collation was successfully changed. | |||
2017-04-25 07:16:47.16 spid6s SQL Server shutdown has been initiated | |||
2017-04-25 07:16:47.17 spid6s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no | |||
user action is required. | |||
Выполнено. Чтобы запустить SQL Server, выполните команду "sudo systemctl start mssql-server" | |||
* Выполняем запуск сервера: | |||
sudo systemctl start mssql-server | |||
Все должно работать нормально. | |||
<hr> | |||
'''Дополнительная информация.''' | |||
<hr> | |||
* Посмотреть доступные базы: | |||
sqlcmd -S localhost -U SA -P [youpasswd] | |||
1> SELECT name FROM master.dbo.sysdatabases; | |||
2> GO; | |||
* Появится сообщение: | |||
name | |||
-------------------------------------------------------------------------------------------------------------------------------- | |||
master | |||
tempdb | |||
model | |||
msdb | |||
TESTDB | |||
* Для удаления базы данных выполнить: | |||
1>DROP DATABASE TESTDB; | |||
2>GO; | |||
* Для создания новой базы данных выполнить: | |||
1>CREATE DATABASE NEWBASE; | |||
2>GO; | |||
<hr> | |||
'''Использованы источники:''' | |||
<hr> | |||
* [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#traceflags Configure SQL Server on Linux with the mssql-conf tool] | |||
* [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-manage-ssms Use SQL Server Management Studio on Windows to manage SQL Server on Linux] | |||
* [http://stackoverflow.com/questions/147659/get-list-of-databases-from-sql-server Get list of databases from SQL Server] | |||
* [https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database импорт экспорт базы данных из backup] | |||
* [http://dic.ru/wiki/doku.php?id=doc:mssql_defrag defrag mssql] | |||
* [https://eax.me/lxc/ ограничение ресурсов LXC] |
Текущая версия от 07:08, 29 августа 2019
Установка через LXC в Linux Debian Jessie
- ставим службу LXC как описано тут: LXC debian 8
- создаем контейнер для Ubuntu версией не ниже 10.04
lxc-create -t download -n xmssql -- -d ubuntu -r trusty -a amd64
или lxc-create -t download -n xmssql -- -d ubuntu -r trusty -a amd64 --keyserver hkp://p80.pool.sks-keyservers.net:80
- ВНИМАНИЕ! MSSQL- ставится только на архитектуру - amd64
- после установки вас попросят создать внутри контейнера пользователя, запускаем контейнер:
lxc-start -n xmssql
- так как пользователя внутри еще нет, то входим через chroot
lxc-attach -n xmssql adduser user
- создаем пароль для пользователя user
usermod user -G sudo
- добавляем пользователя user в группу sudo
- теперь правим наш конфиг контейнера для доступа в сеть:
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu # Parameters passed to the template: # Template script checksum (SHA-1): 704a37e3ce689db94dd1c1a02eae680a00cb5a82 # For additional config options, please look at lxc.container.conf(5) # Uncomment the following line to support nesting containers: #lxc.include = /usr/share/lxc/config/nesting.conf # (Be aware this has security implications) # Common configuration lxc.include = /usr/share/lxc/config/ubuntu.common.conf # Container specific configuration lxc.rootfs = /var/lib/lxc/mssqldeb/rootfs lxc.rootfs.backend = dir lxc.utsname = mssqldeb lxc.arch = i686 ## lxc.autodev = 1 lxc.kmsg = 0 #Количество /dev/tty lxc.tty = 6 # Network configuration #lxc.network.type = empty lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.network.veth.pair= br0-1 lxc.network.name = eth0 lxc.network.hwaddr = 00:AF:DF:00:88:99 # Autostart lxc.start.auto = 1 lxc.start.delay = 5 lxc.start.order = 100
- чтоб было понятно, в системе уже создан интерфейс br0 в который подключен только виртуальный интерфейс virt0 (uml-utilites)
- поэтому мы подключаем наш мост br0-1 на br0, имя внутреннего интерфейса в боксе eth0, его мак-адрес тоже указываем.
- в боксе прописываем настройки вручную для eth0, или подключаем на хосте сервер dhcp и указываем ему интерфейс br0
- теперь стартуем наш бокс и подключаемся для установки необходимых пакетов для дальнейшей работы:
lxc-start -n xmssql lxc-console -n xmssql $ $ sudo apt-get update
- если внешний интерфейс на хосте в IPTABLES:
... nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.122.123 ... или ... -A POSTROUTING -o ppp0 -j MASQUERADE COMMIT ...
- то у вас сеть должна работать без проблем и обновление репозитария пройдет нормально
- иначе настройте доступ контейнеру в интернет.
- далее ставим необходимое:
sudo apt-get install curl wget mc ssh htop iftop nmap resolvconf dnsutils aptitude
- теперь можно выйти из консоли lxc-console
$ exit ...
- выход из консоли полностью: Ctr+a и q
- теперь подключаемся через ssh
ssh user@[ip вашего контейнера]
- все, мы в нормально настроенной Ubuntu...
- Локализация Ubuntu:
sudo apt-get install language-pack-ru sudo update-locale LANG=ru_RU.UTF-8
- Перезагружаем контейнер:
lxc-stop -n xmssql lxc-start -n xmssql
- входим через ssh и проверяем:
sudo locale
- вы должны увидеть:
LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=
- теперь приступим к установке MsSQL, взято тут
$ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - $ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list $ sudo apt-get update $ sudo apt-get install -y mssql-server
- после установки вас попросят настроить сервер MsSQL:
$ sudo mssql-conf setup
- указываем пароль не менее 8 символов и должны быть хоть одна большая буква и 2-3 цифры
- теперь установка mssql-tools - взято тут:
$ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - $ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list $ sudo apt-get update $ sudo apt-get install mssql-tools unixodbc-dev
- для удобства работы пробросим симлики в /usr/local/bin
$ sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin/sqlcmd
- все, можно начинать работать с сервером MsSQL.
- По поводу подключения читать Тут...
Install MS SQL Server on Debian Jessie (through Docker)
Настройка базы для работы с ПО
Часто Администраторы сталкиваются при настройке сервера MSSQL с проблемой схемы для символьных полей в базе.
Ошибка может выглядеть так:
... Cannot resolve the collation conflict between "Cyrillic_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. ...
Причина подробно описана Тут...
Для исправления этой проблемы делаем следующее:
- Останавливаем сервер mssql:
sudo systemctl stop mssql-server
- Входим в каталог программы:
cd /opt/mssql/bin
- Выполняем команду изменения схемы для символьных полей в базе:
./mssql-conf set-collation Enter the collation: Cyrillic_General_CI_AS ... ... The default collation was successfully changed. 2017-04-25 07:16:47.16 spid6s SQL Server shutdown has been initiated 2017-04-25 07:16:47.17 spid6s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required. Выполнено. Чтобы запустить SQL Server, выполните команду "sudo systemctl start mssql-server"
- Выполняем запуск сервера:
sudo systemctl start mssql-server
Все должно работать нормально.
Дополнительная информация.
- Посмотреть доступные базы:
sqlcmd -S localhost -U SA -P [youpasswd] 1> SELECT name FROM master.dbo.sysdatabases; 2> GO;
- Появится сообщение:
name -------------------------------------------------------------------------------------------------------------------------------- master tempdb model msdb TESTDB
- Для удаления базы данных выполнить:
1>DROP DATABASE TESTDB; 2>GO;
- Для создания новой базы данных выполнить:
1>CREATE DATABASE NEWBASE; 2>GO;
Использованы источники: