Страница 1 из 1

Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 09:53
ya
Стандартная установка MS SQL на Ubuntu 22.04

Код: Выделить всё

# 1. Добавить репозиторий Microsoft
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list

# 2. Обновить пакеты
sudo apt-get update

# 3. Установить SQL Server
sudo apt-get install -y mssql-server

# 4. Запустить настройку
sudo /opt/mssql/bin/mssql-conf setup
Проверка:

Код: Выделить всё

sudo systemctl status mssql-server
Автозапуск:

Код: Выделить всё

sudo systemctl enable mssql-server

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 10:11
Sillis
Enter your edition(1-10): Last login: Tue Oct 13 04:49:02 2026 from 10.49.0.102
gt@ubuntu22-04-mssql-sergey-m:~$ sudo /opt/mssql/bin/mssql-conf setup
[sudo] password for gt:
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
9) Standard (Billed through Azure) - Use pay-as-you-go billing through Azure.
10) Enterprise Core (Billed through Azure) - Use pay-as-you-go billing through Azure.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
By choosing an edition billed Pay-As-You-Go through Azure, you are verifying
that the server and SQL Server will be connected to Azure by installing the
management agent and Azure extension for SQL Server.

Enter your edition(1-10):
Invalid option Last login: Tue Oct 13 04:49:02 2026 from 10.49.0.102.
gt@ubuntu22-04-mssql-sergey-m:~$

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 14:25
ya
Проверьте, запустилась ли служба:

Код: Выделить всё

sudo systemctl status mssql-server --no-pager

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 14:33
ya
sqlcmd не находится, потому что это отдельный пакет — в Ubuntu 22.04 его устанавливают из репозитория Microsoft как mssql-tools18, а не sqlcmd.

Выполните:

Код: Выделить всё

curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \
  | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc >/dev/null

curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/prod.list \
  | sudo tee /etc/apt/sources.list.d/mssql-release.list >/dev/null

sudo apt update
sudo ACCEPT_EULA=Y apt install -y mssql-tools18 unixodbc-dev
Затем подключитесь, указав полный путь к программе:

Код: Выделить всё

/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -C
Введите пароль sa, который задали при настройке SQL Server. Чтобы команда sqlcmd работала без полного пути, добавьте каталог в PATH:

Код: Выделить всё

echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
После этого можно подключаться так:

Код: Выделить всё

sqlcmd -S localhost -U sa -C
Если apt update или установка выдаст ошибку, пришлите полный текст ошибки. Установка mssql-tools18 для Ubuntu 22.04 включает утилиту sqlcmd.
Microsoft

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 15:12
ya

Код: Выделить всё

sudo apt install openjdk-21-jdk  maven yarn nodejs npm

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 18:56
ya
Веб-интерфейс для MS SQL на Ubuntu 22.04

Код: Выделить всё

apt install apache2 php php-sql-formatter
cd /var/www/html
wget https://www.adminer.org/latest.php -O index.php
sudo mv index.html index.html.original

Код: Выделить всё

sudo apt-get update
sudo apt-get install -y php php-dev php-pear unixodbc-dev
Установите Microsoft ODBC Driver for SQL Server

Код: Выделить всё

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list)"
sudo apt-get update
sudo apt-get install -y msodbcsql18
Установите PHP-расширение PDO_SQLSRV

Код: Выделить всё

sudo pecl channel-update pecl.php.net
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 19:16
ya
# Проблема совместимости PHP версии

Ошибка указывает, что **PECL пакет sqlsrv требует PHP 8.3.0 или выше, а у вас установлена версия 8.1.2**.

---

## Решение 1: Обновить PHP до 8.3+ (рекомендуется)

### Добавьте PPA с новыми версиями PHP

```bash

Код: Выделить всё

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
```

### Установите PHP 8.3

```bash

Код: Выделить всё

sudo apt-get install -y php8.3 php8.3-dev php8.3-fpm php8.3-cli
```

### Установите расширения для PHP 8.3

```bash

Код: Выделить всё

sudo apt-get install unixodbc-dev php8.3-xml
# Установите Microsoft ODBC Driver (если ещё не установлен)
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Код: Выделить всё

sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list)"
sudo apt-get update
sudo apt-get install -y msodbcsql18

# Установите расширения через PECL

Код: Выделить всё

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
```

Затем проверьте, что расширение загружено:

Код: Выделить всё

php8.3 -m | grep xml
### Активируйте расширения для PHP 8.3

```bash

Код: Выделить всё

sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.3/cli/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.3/cli/conf.d/20-pdo_sqlsrv.ini'
sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.3/fpm/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.3/fpm/conf.d/20-pdo_sqlsrv.ini'
```
Проблема: PHP ищет расширения в /usr/lib/php/20230831/, а они установлены в /usr/lib/php/20210902/.
Это мismatch между версиями PHP API. Нужно скопировать файлы в правильную директорию.

Код: Выделить всё

sudo ln -s /usr/lib/php/20210902/sqlsrv.so /usr/lib/php/20230831/sqlsrv.so
sudo ln -s /usr/lib/php/20210902/pdo_sqlsrv.so /usr/lib/php/20230831/pdo_sqlsrv.so
### Перезагрузите сервис

```bash

Код: Выделить всё

sudo systemctl restart php8.3-fpm
```

### Установите 8.3 как версию по умолчанию

```bash

Код: Выделить всё

sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.3 100
sudo update-alternatives --install /usr/bin/php-config php-config /usr/bin/php-config8.3 100
sudo update-alternatives --install /usr/bin/phpize phpize /usr/bin/phpize8.3 100
```

### Проверьте версию и расширения

```bash

Код: Выделить всё

php -v
php -m | grep sqlsrv
php -m | grep pdo_sqlsrv
```

---

## Решение 2: Использовать более старую версию sqlsrv для PHP 8.1

Если вы **не хотите обновлять PHP**, можно установить старую версию sqlsrv:

```bash
sudo pecl install sqlsrv-5.10.1
sudo pecl install pdo_sqlsrv-5.10.1
```

Затем активируйте расширения для PHP 8.1:

```bash
sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.1/cli/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.1/cli/conf.d/20-pdo_sqlsrv.ini'
```

Перезагрузитесь:

```bash
sudo systemctl restart php8.1-fpm
```

---

## Решение 3: Просто используйте CloudBeaver (самое простое)

**CloudBeaver вообще не требует PHP**. Это Java-приложение, и вам не нужны все эти манипуляции с расширениями:

```bash
cd ~/cloudbeaver
docker-compose up -d
```

Откройте **http://localhost:8978** и используйте полнофункциональный веб-IDE.

---

## Мой рекомендуемый путь

1. **Если CloudBeaver вам подошел** → забудьте о PHP расширениях, просто используйте его
2. **Если нужен PHP инструмент (Adminer/другое)** → обновите PHP на 8.3 (Решение 1)

Какой вариант вам нравится больше?

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 19:17
ya
Вариант B: Из исходников

bash


git clone https://github.com/microsoft/msphpsql.git
cd msphpsql/shared
phpize
./configure
make
sudo make install
4. Активируйте расширения
Создайте или отредактируйте /etc/php/8.1/cli/conf.d/sqlsrv.ini:

bash


sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.1/cli/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.1/cli/conf.d/20-pdo_sqlsrv.ini'
Если используется FPM (для веб-сервера):

bash


sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.1/fpm/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.1/fpm/conf.d/20-pdo_sqlsrv.ini'
5. Перезагрузите PHP
bash


# Если используется PHP-FPM
sudo systemctl restart php8.1-fpm

# Если используется встроенный сервер
# Просто перезапустите процесс
6. Проверьте установку
bash


php -m | grep sqlsrv
php -m | grep pdo_sqlsrv
Должны появиться обе строки.

Версия PHP
Проверьте вашу версию PHP:

bash


php -v
Замените 8.1 в командах выше на вашу версию (например, 8.2, 8.3).

Если ошибка в Adminer
После установки расширений:

Перезапустите PHP-сервер:
bash


php -S localhost:8000
Обновите страницу Adminer в браузере (Ctrl+F5)
Теперь должна быть доступна опция MS SQL (php-mssql)
Рекомендация
Я рекомендую вернуться к CloudBeaver — это полнофункциональное решение без зависимостей PHP. Просто убедитесь, что контейнер работает:

bash


docker ps | grep cloudbeaver
Если контейнер не запущен:

bash


cd ~/cloudbeaver
docker-compose up -d

Re: Стандартная установка MS SQL на Ubuntu 22.04

Добавлено: 13 окт 2026, 19:50
ya
# Проблема: старый phpize всё ещё используется

**Причина:** Несмотря на `update-alternatives`, **старый `/usr/bin/phpize` всё ещё существует** и имеет приоритет.

---

## Решение: прямое переназначение

### 1. Удалите старый phpize

```bash
sudo rm /usr/bin/phpize
sudo rm /usr/bin/php-config
```

### 2. Создайте симлинки на новые версии

```bash
sudo ln -s /usr/bin/phpize8.3 /usr/bin/phpize
sudo ln -s /usr/bin/php-config8.3 /usr/bin/php-config
```

### 3. Проверьте

```bash
which phpize
phpize --version
```

Должно показать **API 20230831**.

---

## Теперь переустановите расширения

```bash
sudo rm -rf /usr/lib/php/20210902/sqlsrv.so /usr/lib/php/20210902/pdo_sqlsrv.so 2>/dev/null

sudo pecl uninstall sqlsrv
sudo pecl uninstall pdo_sqlsrv

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
```

### Активируйте расширения

```bash
sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.3/cli/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" >> /etc/php/8.3/cli/conf.d/20-sqlsrv.ini'

sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.3/fpm/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" >> /etc/php/8.3/fpm/conf.d/20-sqlsrv.ini'
```

### Перезагрузите

```bash
sudo systemctl restart php8.3-fpm
php8.3 -m | grep sqlsrv
```

На этот раз должно работать без ошибок!