Настройка источников в unixODBC
MySQL
Для MySQL в CentOS уже имеется установленный пакет mysql-connector-odbc
.
Файл /etc/odbcinst.ini
:
[PostgreSQL] Description=ODBC for PostgreSQL Driver=/usr/lib/psqlodbcw.so Setup=/usr/lib/libodbcpsqlS.so Driver64=/usr/lib64/psqlodbcw.so Setup64=/usr/lib64/libodbcpsqlS.so FileUsage=1 [MySQL] Description=ODBC for MySQL Driver=/usr/lib/libmyodbc5.so Setup=/usr/lib/libodbcmyS.so Driver64=/usr/lib64/libmyodbc5.so Setup64=/usr/lib64/libodbcmyS.so FileUsage=1
Файл ~/.odbc.ini
:
[Postgres_DSN] Description = PostgreSQL test database Driver = /usr/lib64/psqlodbcw.so Servername = 10.0.0.99 Port = 54320 Database = pa_test User = pa_test [MySQL_DSN] Descrition = My SQL test database Driver = /usr/lib64/libmyodbc5.so Server = 10.0.0.99 Port = 33060 Database = pa_test User = pa_test
Пакет mysql-connector-odbc
Версии 8 имеется в другом репозитории.
Подробную инструкцию по добавлению репозитория см. здесь.
Для добавления репозитория используйте пакет mysql-community-release.
В файле ~/.odbc.ini
, замените следующую строку:
Driver = /usr/lib64/libmyodbc8w.so
Oracle
Загрузите пакеты Версии 19.3.0.0.0 отсюда:
-
Базовый (Basic) пакет (зависимость для ODBC)
-
Пакет ODBC
-
Пакет SQL*Plus (дополнительно для утилиты sqlplus)
Ниже приведен пример установки пакета (Basic):
wget https://download.oracle.com/otn_software/linux/instantclient/193000/oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm yum install ./oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
Для загрузки Oracle Instant Client ODBC см. инструкцию:
Для предварительной настройки выполните вызов слегка модифицированного конфигурационного скрипта (при обработке параметра $1 результат заменяется на ODBCDM_HOME=""
):
/usr/lib/oracle/19.3/client64/bin/odbc_update_ini.sh "/" "/usr/lib/oracle/19.3/client64/lib" "Oracle 19 ODBC driver" "OracleODBC-19" "/home/jenkins/.odbc.ini"
В результате мы получили дополненные файлы и изменили их в соответствии с настройками базы.
File /etc/odbcinst.ini
:
[Oracle 19 ODBC driver] Description = Oracle ODBC driver for Oracle 19 Driver = /usr/lib/oracle/19.3/client64/lib/libsqora.so.19.1 Setup = FileUsage = CPTimeout = CPReuse = Файл ~/.odbc.ini: [OracleODBC-19] AggregateSQLType = FLOAT Application Attributes = T Attributes = W BatchAutocommitMode = IfAllSuccessful BindAsFLOAT = F CacheBufferSize = 20 CloseCursor = F DisableDPM = F DisableMTS = T DisableRULEHint = T Driver = /usr/lib/oracle/19.3/client64/lib/libsqora.so.19.1 DSN = OracleODBC-19 EXECSchemaOpt = EXECSyntax = T Failover = T FailoverDelay = 10 FailoverRetryCount = 10 FetchBufferSize = 64000 ForceWCHAR = F LobPrefetchSize = 8192 Lobs = T Longs = T MaxLargeData = 0 MaxTokenSize = 8192 MetadataIdDefault = F QueryTimeout = T ResultSets = T ServerName = //10.0.0.99:1521/orcl SQLGetData extensions = F SQLTranslateErrors = F StatementCache = F Translation DLL = Translation Option = 0 UseOCIDescribeAny = F UserID = pa_test Password = pa_test Подключение unixODBC: isql -v OracleODBC-19
Подключение к Sql*plus:
sqlplus64 pa_test/pa_test@10.0.0.99:1521/orcl
Файл ~/.tnsnames.ora
SERVER_DBORACLE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.99)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
Для ~/.tnsnames.ora
, можно заменить 10.0.0.99:1521/orcl
на SERVER_DBORACLE
.
В ~/.odbc.ini
:
ServerName = SERVER_DBORACLE
Подключение к Sql*plus:
sqlplus64 pa_test/pa_test@SERVER_DBORACLE
Установка и настройка MS SQL Server (провайдер ODBC)
В следующем примере MS SQL Server был установлен на другой узел во избежание конфликтов в пакете unixODBC из разных репозиториев.
Настройте репозиторий:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
Установите необходимые пакеты:
sudo ACCEPT_EULA=Y yum install -y msodbcsql17 sudo ACCEPT_EULA=Y yum install -y mssql-tools sudo yum install -y unixODBC
После установки пакетов файл /etc/odbcinst.ini
содержит:
[ODBC Driver 17 for SQL Server] Description=Microsoft ODBC Driver 17 for SQL Server Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1 UsageCount=1
Далее установите источники данных.
Файл ~/.odbc.ini
:
[MSSQLTest] Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1 Server = tcp:10.0.0.99,14330
Подключение к unixODBC:
isql -v MSSQLTest pa_test pa_test
Запрос
SELECT Mpg, Cylinders, Displacement, Power, Weight, Acceleration, [Year], Origin, Model FROM pa_test.dbo.CarData;
выполнен успешно.
Vertica
Загрузите пакеты Vertica 9.1.x (RPM - ODBC, JDBC, Python и vsql) отсюда.
Пример установки пакета:
wget https://www.vertica.com/client_drivers/9.1.x/9.1.1-0/vertica-client-9.1.1-0.x86_64.rpm yum -y install ./vertica-client-9.1.1-0.x86_64.rpm
См. инструкцию по созданию ODBC DSN.
Файл /etc/odbcinst.ini
:
[Vertica] Description = Vertica ODBC Driver Driver = /opt/vertica/lib64/libverticaodbc.so
Файл ~/.odbc.ini
:
[VMart] Description = Vmart Database Driver = /opt/vertica/lib64/libverticaodbc.so Database = pa_test Servername = 10.0.0.98 UID = pa_test PWD = pa_test Port = 54330
PostgreSQL
Установите следующие пакеты для соединения ODBC с PostgreSQL:
sudo yum install unixODBC unixODBC-devel sudo yum install postgresql-odbc
Найдите настройки для драйверов ODBC в /etc/odbcinst.ini
. После установки файл содержит следующее:
# Example driver definitions # Driver from the postgresql-odbc package # Setup from the unixODBC package [PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/psqlodbcw.so Setup = /usr/lib/libodbcpsqlS.so Driver64 = /usr/lib64/psqlodbcw.so Setup64 = /usr/lib64/libodbcpsqlS.so FileUsage = 1 # Driver from the mysql-connector-odbc package # Setup from the unixODBC package [MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1
Настройте системный DSN в /etc/odbc.ini
и настройте пользовательский DSN в /home/.odbc.ini
. Файл содержит:
[TEST_DSN] Description = PostgreSQL test database Driver = /usr/lib64/psqlodbcw.so Servername = proliant Port = 5432 Database = pa_panyusko User = pa_test_libpq Password = *******
ClickHouse
Для начала необходимо скачать и распаковать архив ClickHouse. Для нашего примера мы будем использовать Релиз 1.2.1.20220905.
Используйте права суперпользователя для выполнения следующих команд:
curl -sL -o tmp.zip https://github.com/ClickHouse/clickhouse-odbc/releases/download/v1.2.1.20220905/clickhouse-odbc-linux.zip unzip -p tmp.zip clickhouse-odbc-1.2.1-Linux.tar.gz | tar -C /usr/local --strip-components=1 -xzvf -rm -f tmp.zip
В противном случае используйте sudo
перед tar
.
Найдите конфигурацию для драйверов ODBC в "~/odbcinst.ini" или "/etc/odbcinst.ini`. После установки содержимое файла будет следующим:
[ODBC Drivers] ClickHouse ODBC Driver (ANSI) = Installed ClickHouse ODBC Driver (Unicode) = Installed [ClickHouse ODBC Driver (ANSI)] Description = ODBC Driver (ANSI) for ClickHouse Driver = /usr/local/lib64/libclickhouseodbc.so Setup = /usr/local/lib64/libclickhouseodbc.so UsageCount = 1 [ClickHouse ODBC Driver (Unicode)] Description = ODBC Driver (Unicode) for ClickHouse Driver = /usr/local/lib64/libclickhouseodbcw.so Setup = /usr/local/lib64/libclickhouseodbcw.so UsageCount = 1
Задайте конфигурацию DSN в файле ~/.odbc.ini
или /etc/odbc.ini
:
[ODBC Data Sources] ClickHouse DSN (ANSI) = ClickHouse ODBC Driver (ANSI) ClickHouse DSN (Unicode) = ClickHouse ODBC Driver (Unicode) [ClickHouse DSN (ANSI)] Driver = ClickHouse ODBC Driver (ANSI) Description = DSN (localhost) for ClickHouse ODBC Driver (ANSI) ### New all-in one way to specify connection with [optional] settings: # Url = https://default:password@localhost:8443/query?database=default&max_result_bytes=4000000&buffer_size=3000000 # ...or minimal (will connect to port 8443 if protocol is "https://" or 8123 if it is "http://"): # Url = https://localhost ### Old way: # Server = localhost # Database = default # UID = default # PWD = password # Port = 8123 # Proto = http # Timeout for http queries to ClickHouse server (default is 30 seconds) # Timeout=60 # SSLMode: # allow - ignore self-signed and bad certificates # require - check certificates (and fail connection if something wrong) # SSLMode = require # PrivateKeyFile = # CertificateFile = # CALocation = # DriverLog = yes # DriverLogFile = /tmp/chlickhouse-odbc-driver.log [ClickHouse DSN (Unicode)] Driver = ClickHouse ODBC Driver (Unicode) Description = DSN (localhost) for ClickHouse ODBC Driver (Unicode) # ...
Затем используйте следующую команду для подключения:
isql -v "ClickHouse DSN (Unicode)"