Sql server connect from linux

Quickstart: Install SQL Server and create a database on Ubuntu

Applies to: SQL Server (all supported versions) — Linux

In this quickstart, you install SQL Server 2017 on Ubuntu 16.04/18.04. You then connect with sqlcmd to create your first database and run queries.

This tutorial requires user input and an internet connection. If you are interested in the unattended or offline installation procedures, see Installation guidance for SQL Server on Linux. For a list of supported platforms, see our Release notes.

In this quickstart, you install SQL Server 2019 on Ubuntu 16.04, 18.04, or 20.04. You then connect with sqlcmd to create your first database and run queries.

Ubuntu 20.04 is supported starting with SQL Server 2019 CU10.

This tutorial requires user input and an internet connection. If you are interested in the unattended or offline installation procedures, see Installation guidance for SQL Server on Linux. For a list of supported platforms, see our Release notes.

Prerequisites

You must have an Ubuntu 16.04 or 18.04 machine with at least 2 GB of memory.

To install Ubuntu 18.04 on your own machine, go to http://releases.ubuntu.com/bionic/. You can also create Ubuntu virtual machines in Azure. See Create and Manage Linux VMs with the Azure CLI.

At this time, the Windows Subsystem for Linux for Windows 10 is not supported as an installation target for production workloads.

Ubuntu 18.04 is supported starting with SQL Server 2017 CU20. If you want to use the instructions on this article with Ubuntu 18.04, make sure you use the correct repository path, 18.04 instead of 16.04 .

If you are running SQL Server on a lower version, the configuration is possible with modifications.

You must have an Ubuntu 16.04, 18.04, or 20.04 machine with at least 2 GB of memory.

To install Ubuntu 20.04 on your own machine, go to https://releases.ubuntu.com/20.04/. You can also create Ubuntu virtual machines in Azure. See Create and Manage Linux VMs with the Azure CLI.

At this time, the Windows Subsystem for Linux for Windows 10 is not supported as an installation target for production workloads.

Install SQL Server

The following commands for SQL Server 2017 points to the Ubuntu 18.04 repository. If you are using Ubuntu 16.04, change the path below to /ubuntu/16.04/ instead of /ubuntu/18.04/ .

To configure SQL Server on Ubuntu, run the following commands in a terminal to install the mssql-server package.

Import the public repository GPG keys:

Register the Microsoft SQL Server Ubuntu repository:

For Ubuntu 16.04:

For Ubuntu 18.04:

If you want to install SQL Server 2019 , you must instead register the SQL Server 2019 repository. Use the following command for SQL Server 2019 installations:

For Ubuntu 16.04:

For Ubuntu 18.04:

Run the following commands to install SQL Server:

After the package installation finishes, run mssql-conf setup and follow the prompts to set the SA password and choose your edition.

The following SQL Server 2017 editions are freely licensed: Evaluation, Developer, and Express.

Make sure to specify a strong password for the SA account (Minimum length 8 characters, including uppercase and lowercase letters, base 10 digits and/or non-alphanumeric symbols).

Once the configuration is done, verify that the service is running:

If you plan to connect remotely, you might also need to open the SQL Server TCP port (default 1433) on your firewall.

At this point, SQL Server is running on your Ubuntu machine and is ready to use!

Install SQL Server

The following commands for SQL Server 2019 points to the Ubuntu 20.04 repository. If you are using Ubuntu 18.04 or 16.04, change the path below to /ubuntu/18.04/ or /ubuntu/16.04/ instead of /ubuntu/20.04/ .

To configure SQL Server on Ubuntu, run the following commands in a terminal to install the mssql-server package.

Читайте также:  Пакеты утилит для windows что это

Import the public repository GPG keys:

Register the Microsoft SQL Server Ubuntu repository for SQL Server 2019:

For Ubuntu 16.04:

For Ubuntu 18.04:

For Ubuntu 20.04:

Run the following commands to install SQL Server:

After the package installation finishes, run mssql-conf setup and follow the prompts to set the SA password and choose your edition.

Make sure to specify a strong password for the SA account (Minimum length 8 characters, including uppercase and lowercase letters, base 10 digits and/or non-alphanumeric symbols).

Once the configuration is done, verify that the service is running:

If you plan to connect remotely, you might also need to open the SQL Server TCP port (default 1433) on your firewall.

At this point, SQL Server 2019 is running on your Ubuntu machine and is ready to use!

Install the SQL Server command-line tools

To create a database, you need to connect with a tool that can run Transact-SQL statements on the SQL Server. The following steps install the SQL Server command-line tools: sqlcmd and bcp.

Use the following steps to install the mssql-tools on Ubuntu.

By default, curl isn’t installed on Ubuntu. To install curl, run this code:

Import the public repository GPG keys.

Register the Microsoft Ubuntu repository.

For Ubuntu 16.04:

For Ubuntu 18.04:

For Ubuntu 20.04:

Update the sources list and run the installation command with the unixODBC developer package. For more information, see Install the Microsoft ODBC driver for SQL Server (Linux).

To update to the latest version of mssql-tools run the following commands:

Optional: Add /opt/mssql-tools/bin/ to your PATH environment variable in a bash shell.

To make sqlcmd/bcp accessible from the bash shell for login sessions, modify your PATH in the

/.bash_profile file with the following command:

To make sqlcmd/bcp accessible from the bash shell for interactive/non-login sessions, modify the PATH in the

/.bashrc file with the following command:

Connect locally

The following steps use sqlcmd to locally connect to your new SQL Server instance.

Run sqlcmd with parameters for your SQL Server name (-S), the user name (-U), and the password (-P). In this tutorial, you are connecting locally, so the server name is localhost . The user name is SA and the password is the one you provided for the SA account during setup.

You can omit the password on the command line to be prompted to enter it.

If you later decide to connect remotely, specify the machine name or IP address for the -S parameter, and make sure port 1433 is open on your firewall.

If successful, you should get to a sqlcmd command prompt: 1> .

If you get a connection failure, first attempt to diagnose the problem from the error message. Then review the connection troubleshooting recommendations.

Create and query data

The following sections walk you through using sqlcmd to create a new database, add data, and run a simple query.

Create a new database

The following steps create a new database named TestDB .

From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:

On the next line, write a query to return the name of all of the databases on your server:

The previous two commands were not executed immediately. You must type GO on a new line to execute the previous commands:

To learn more about writing Transact-SQL statements and queries, see Tutorial: Writing Transact-SQL Statements.

Insert data

Next create a new table, Inventory , and insert two new rows.

From the sqlcmd command prompt, switch context to the new TestDB database:

Create new table named Inventory :

Insert data into the new table:

Type GO to execute the previous commands:

Select data

Now, run a query to return data from the Inventory table.

From the sqlcmd command prompt, enter a query that returns rows from the Inventory table where the quantity is greater than 152:

Execute the command:

Exit the sqlcmd command prompt

To end your sqlcmd session, type QUIT :

Performance best practices

After installing SQL Server on Linux, review the best practices for configuring Linux and SQL Server to improve performance for production scenarios. For more information, see Performance best practices and configuration guidelines for SQL Server on Linux.

Cross-platform data tools

In addition to sqlcmd, you can use the following cross-platform tools to manage SQL Server:

Tool Description
Azure Data Studio A cross-platform GUI database management utility.
Visual Studio Code A cross-platform GUI code editor that run Transact-SQL statements with the mssql extension.
PowerShell Core A cross-platform automation and configuration tool based on cmdlets.
mssql-cli A cross-platform command-line interface for running Transact-SQL commands.

Connecting from Windows

SQL Server tools on Windows connect to SQL Server instances on Linux in the same way they would connect to any remote SQL Server instance.

If you have a Windows machine that can connect to your Linux machine, try the same steps in this topic from a Windows command-prompt running sqlcmd. Just verify that you use the target Linux machine name or IP address rather than localhost, and make sure that TCP port 1433 is open. If you have any problems connecting from Windows, see connection troubleshooting recommendations.

For other tools that run on Windows but connect to SQL Server on Linux, see:

Other deployment scenarios

For other installation scenarios, see the following resources:

  • Upgrade: Learn how to upgrade an existing installation of SQL Server on Linux
  • Uninstall: Uninstall SQL Server on Linux
  • Unattended install: Learn how to script the installation without prompts
  • Offline install: Learn how to manually download the packages for offline installation

For answers to frequently asked questions, see the SQL Server on Linux FAQ.

Источник

Подключение к Microsoft SQL из linux
(с помощью FreeTDS)

В различных случаях Вам может понадобиться подключиться из linux системы к СУБД Microsoft SQL (работающей под управлением Microsoft Windows). Например, Вы хотите организовать запись истории звонков Вашей АТС (например, CDR Asterisk) или даже записывать сами звонки в базу данных. В любом случае Вам не обойтись без соответствующих подсистем, отвечающих за связь между программами на linux и базами данных в MS SQL.

Само решение задачи по такому подключению состоит из нескольких этапов:

  1. Установка и настройка Microsoft SQL сервера (рассмотрение этой задачи выходит за рамки данной статьи).
  2. Настройка Microsoft SQL сервера для подключений извне (будет затронуто очень поверхностно).
  3. Установка FreeTDS.
  4. Проверка связи с Microsoft SQL сервером.
  5. Настройка FreeTDS для подключения к Microsoft SQL.
  6. Диагностика соединения через FreeTDS с Microsoft SQL сервером.
  7. Возможные ошибки, возникающие в процессе установки и настройки FreeTDS.

Установка и настройка Microsoft SQL сервера / настройка MS SQL сервера для подключений извне

Все примеры из данной статьи тестировались в работе с MS SQL 2005 / 2008. SQL сервер желательно устанавливать в mixed режиме (чтобы авторизовываться можно было как пользователь windows и/или как пользователь SQL сервер). Данное требование желательно, но не обязательно.

Включите использование протокола tcp/ip в настройках сервера (чтобы к нему можно было подключаться по сети).

Если предполагается использование instance вместо номеров портов (например, если у Вас несколько instance на одном сервере), то не забудьте включить и запустить службу «SQL Server Browser» (если с этим возникают проблемы, см. «Возможные ошибки, возникающие в процессе настройки FreeTDS», внизу статьи).

Установка FreeTDS

Сайт программы FreeTDS находится здесь: http://www.freetds.org/.
Прямая ссылка для скачивания программы: ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz.
Актуальная версия программы — FreeTDS 0.91

Для скачивания и распаковки программы запустите команды:
cd /usr/src/
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz
tar -xvzf freetds-stable.tgz

Теперь перейдите в нужную папку и запустите программы конфигурирования, сборки и установки (название папки зависит от версии программы, приведен пример для версии 0.91):
cd /usr/src/freetds-0.91/
./configure
make
make install

В случае успешного выполнения команд (отсутствия ошибок) установка FreeTDS закончена.

Проверка связи с Microsoft SQL Server

Для начала попробуем подключиться к SQL серверу с помощью telnet:
telnet sql-server 1433
или (возможен и такой вариант порта):
telnet sql-server 1434
Должно произойти выполнение подключения к SQL серверу. Для отключения достаточно несколько раз нажать Enter.

Теперь проверим работу FreeTDS с сервером Microsoft SQL:
из командной строки (из-под root) запустите:
TDSVER= номер-версии-TDS tsql -H имя-сервера-SQL -p номер-порта-SQL -U имя-пользователя-БД

При этом возможны 2 способа авторизации на SQL сервере: авторизация windows и авторизация SQL. Кроме того, от версии SQL сервера зависит и версия протокола TDS, по которому будет происходить обмен. Например, по умолчанию серверы MS SQL 2005/2008 работают с TDS Version 7.2.

Авторизация windows:
TDSVER=7.2 tsql -H test-sql.mydomain.ru -p 1433 -U test-sql\\Administrator
при запросе пароля ввести пароль пользователя windows (пароль для test-sql\Administrator).
Авторизация SQL:
TDSVER=7.2 tsql -H test-sql.mydomain.ru -p 1433 -U sql-username
при запросе пароля ввести пароль пользователя sql (пароль для sql-username)

При успешном подключении появится приглашение:
1>_
теперь можно ввести команды:
version — чтобы узнать используемую версию протокола TDS (оказалось, что для MS SQL 2005 используется TDS версия 7.1)
exit — для выхода

Настройка FreeTDS для подключения к Microsoft SQL

Сначала необходимо определить местоположение файла с конфигурацией FreeTDS (файл называется freetds.conf, но их может быть несколько в Вашей операционной системе).
Для этого выполните следующую команду
tsql -C

В строке «freetds.conf directory:» Вы увидите путь к файлу с конфигурацией FreeTDS.

Теперь откройте файл freetds.conf по найденному пути и внесите необходимые изменения. Вы можете почитать (и самостоятельно перевести, а также найти нужные Вам параметры) руководство с сайта www.freetds.org, либо можете воспользоваться приведенными ниже инструкциями.
Обратите внимание: инструкции приведены для версии FreeTDS 0.91, опробованы в работе с Microsoft SQL Server 2005/2008, со стороны FreeTDS использованы операционные системы CentOS 6.4 и Debian 7.1.

В файле freetds.conf создайте свою секцию, например:

После настройки freetds.conf ничего перезагружать не нужно.

Диагностика соединения через FreeTDS с Microsoft SQL сервером

Теперь необходимо проверить конфигурацию, настроенную в файле freetds.conf:
tsql -S mytest
где mytest — это название секции в файле freetds.conf
Обратите внимание: при запуске этой команды возникнет ошибка!

tsql -S mytest
locale is «en_US.UTF-8»
locale charset is «UTF-8»
using default charset «UTF-8»
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server

Чтобы убедиться, что конфигурация настроена правильно, попробуйте запустить такую команду:
tsql -S mytest -U имя-пользователя-SQL
например:
tsql -S mytest -U sql-username

После запуска команды введите пароль пользователя sql-username. В этом случае (если все настроено правильно) появится приглашение:

tsql -S mytest -U sql-username
Password:
locale is «en_US.UTF-8»
locale charset is «UTF-8»
using default charset «UTF-8»
1>_

Для выхода наберите exit и нажмите Enter. И обратите внимание на то, что указано в строке «using default charset». Это — кодировка базы данных, используемая для подключения к серверу. В случае, если у Вас кодировка базы данных не английская, то можно будет задать эту кодировку при подключении из программы, которая будет использовать FreeTDS.

Возможные ошибки, возникающие в процессе установки и настройки FreeTDS

OS error 115, «operation now in progress»

При попытке подключения к серверу Microsoft SQL с помощью tsql появляется следующее сообщение:

Error 20017 (severity 9):
Unexpected EOF from the server
OS error 115, «operation now in progress»
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server

Это значит, что указана неверная версия TDS. Например, Вы указали tds 5.0 версию или 8.0, либо вообще ее не указали (в этом случае используется версия по умолчанию — 5.0). Для SQL сервера 2005/2008 необходимо использовать версию TDS 7.x (например, 7.1 или 7.2).
Для правильного выбора версии TDS см здесь:
http://www.freetds.org/userguide/choosingtdsprotocol.htm

Error 20013 (severity 2): Unknown host machine name.

При попытке подключения к серверу Microsoft SQL с помощью tsql появляется следующее сообщение:

Error 20012 (severity 2):
Server name not found in configuration files.
Error 20013 (severity 2):
Unknown host machine name.
There was a problem connecting to the server

Это означает, что указано неверное имя сервера (или к серверу невозможно подключиться по данному имени). Проверьте, что имя сервера резолвится (в нужный IP адрес).
В случае, если Вы уже указали IP адрес и Вы используете файл конфигурации freetds.conf, а эта ошибка по-прежнему появляется, убедитесь, что между словом «host», знаком «=» и именем сервера стоят пробелы. В файле freetds.conf все параметры должны отделяться от знака «=» и от значений пробелами!

OS error 111, «connection refused»

При попытке подключения к серверу Microsoft SQL с помощью tsql появляется следующее сообщение:

Error 20009 (severity 9):
Unable to connect: Adaptive Server is unavailable or does not exist
OS error 111, «connection refused»
There was a problem connecting to the server

Такой компьютер существует (возможно, это даже требуемый SQL сервер), но к нему невозможно подключиться. Обычно это происходит, когда указан неверный порт, либо когда не включено использование tcp/ip в настройках сервера. Попробуйте подключиться к указанному Вами серверу и порту с помощью telnet. В случае успешного подключения отобразится примерно следующее:
Connected to test-sql.mydomain.ru.
Escape character is ‘^]’.

Не удается подключиться к instance на MS SQL сервере

Если не удается подключиться к instance на MS SQL сервере, то сначала попробуйте отобразить все instance сервера:
tsql -LH test-sql.mydomain.ru
если НИЧЕГО не отображается, значит на сервере выключен доступ! Надо настраивать сервер.

В случае успеха отображается сообщение, аналогичное этому:
ServerName TEST-SQL
InstanceName MSSQLSERVER
IsClustered No
Version 9.00.1399.06
tcp 1433
np \\TEST-SQL\pipe\sql\query

После этого можно в настройках, в файле freetds.conf в нужной секции вместо «port = . » указать «instance = . «. Обратите внимание: указывать можно ЛИБО port ЛИБО instance! Не оба!
например:
instance = MSSQLSERVER

Настройка instance на сервере Microsoft SQL

Для работы с instance (а не с номерами портов) на сервере SQL открывается дополнительный UDP порт 1434.

Техническое описание:
Служба «SQL Server, браузер», UDP-порт 1434. Служба «SQL Server, браузер» прослушивает входящие соединения к именованному экземпляру и возвращает клиенту номер TCP-порта, соответствующего именованному экземпляру. Обычно служба «SQL Server, браузер» запускается при использовании именованного экземпляра компонента Database Engine. Если клиент настроен для соединения с именованным экземпляром по заданному порту, то службу «SQL Server, браузер» запускать не обязательно.

Источник

Читайте также:  Openvpn server mac os
Оцените статью