Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Odbc ini linux

Configuring ODBC on Linux

ODBC driver managers use configuration files to define and configure ODBC data sources and drivers. To configure an ODBC connection for Linux, complete the following steps:

Sample Configuration Files

Before you connect to Drill through an ODBC client tool on Linux, copy the following configuration files in /opt/mapr/drill/Setup to your home directory unless the files already exist in your home directory:

In your home directory, rename the files as hidden files. Use sudo if necessary:

Step 1: Set Environment Variables

Set the ODBCINI environment variable to point to the .odbc.ini in your home directory.

Example:
export ODBCINI=

Set the MAPRDRILLINI environment variable to point to .mapr.drillodbc.ini in your home directory.

Example:
export MAPRDRILLINI=

Set the LD_LIBRARY_PATH environment variable to point to your ODBC driver manager libraries.

Example:
export LD_LIBRARY_PATH=/usr/local/lib

You can have both 32- and 64-bit versions of the driver installed at the same time on the same computer.

Do not include the paths to both 32- and 64-bit shared libraries in LD_LIBRARY_PATH at the same time.

Step 2: Define the ODBC Data Sources in .odbc.ini

Define the ODBC data sources in the

/.odbc.ini configuration file for your environment. To use Drill in embedded mode, set the following properties:

To use Drill in distributed mode, set the following properties. (These properties are described in detail in the Direct and ZooKeeper Quorum Properties section.)

The following Linux sample shows a possible configuration for using Drill in distributed mode.

Authentication Properties

If the Drillbit requires authentication, uncomment the AuthenticationType, add an AuthenticationType, and configure properties. If the Drillbit does not require authentication (or to configure no password protection), you can use the No Authentication option. You do not need to configure additional settings.

Kerberos

  • See the MIT Kerberos documentation for installing and configuring a Kerberos environment, which is beyond the scope of the information provided here.
  • To specify the Kerberos mechanism:
    • Set the AuthenticationType to Kerberos.
    • Set the KrbServiceHost property to the FQDN of the Drill server host.
    • Set the KrbServiceName property to the Kerberos service principal name of the Drill server.

Plain (or Basic Authentication)

  • Configure the UID to an appropriate name for accessing the Drill server.
  • Set the PWD property to the password corresponding to the UID.

Direct and ZooKeeper Quorum Properties

To use Drill in distributed mode, set ConnectionType to Zookeeper, get the ZKQuorum and ZKClusterID values from the drill-override.conf file, and define the ZKQuorum and ZKClusterID properties. The drill-override.conf is in the /drill/drill- /conf directory. Format ZKQuorum as a comma separated list of ZooKeeper nodes in the following format:

To use Drill in embedded mode, do not define the ZKQuorum and ZKClusterID properties. Start Drill using the drill-localhost command, set ConnectionType to Direct, and define HOST and PORT properties. For example:

Driver Configuration Options describes configuration options available for controlling the behavior of DSNs using the Drill ODBC Driver.

Step 3: (Optional) Define the ODBC Driver in .odbcinst.ini

The .odbcinst.ini is an optional configuration file that defines the ODBC Drivers. This configuration file is optional because you can specify drivers directly in the .odbc.ini configuration file. The .odbinst.ini file contains the following sample configurations.

Example

Step 4: Configure the Drill ODBC Driver

Configure the Drill ODBC Driver for your environment by modifying the .mapr.drillodbc.ini configuration file. This configures the driver to work with your ODBC driver manager. The following sample shows a possible configuration, which you can use as is if you installed the default iODBC driver manager.

Example

Configuring .mapr.drillodbc.ini

To configure the Drill ODBC Driver in the .mapr.drillodbc.ini configuration file, complete the following steps:

Open the .mapr.drillodbc.ini configuration file in a text editor.

Edit the DisableAsync setting if you want to enable a synchronous ODBC connection for performance reasons. Change the default 0 to 1 to disable the asynchronous and enable the synchronous connection. A change in state occurs during driver initialization and is propagated to all driver DSNs.

Note: As of version 1.3.8 of the driver, the DriverManagerEncoding setting is automatically detected and set if necessary. The value depends on the driver manager used; it’s typically UTF-16 or UTF-32. iODBC uses UTF-32 and unixODBC uses UTF-16.

Save the .mapr.drillodbc.ini configuration file.

Next Step

Copyright В© 2012-2014 The Apache Software Foundation, licensed under the Apache License, Version 2.0.
Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.

Подключение Asterisk к MySQL через драйвер ODBC

В первых версиях Asterisk для сбора и хранения данных CDR и CEL в MySQL использовался драйвер cdr_mysql.so и cel_mysql.so, соответственно. В настоящий момент эти драйверы устарели и разработчики рекомендуют использовать технологию ODBC.

ODBC (Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный фирмой Microsoft, в сотрудничестве с Simba Technologies на основе спецификаций Call Level Interface (CLI), который разрабатывался организациями SQL Access Group, X/Open и Microsoft. Впоследствии CLI был стандартизован ISO. Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его независимым от поставщика СУБД и программно-аппаратной платформы. Спасибо Википедии.

Проще говоря, драйвер ODBC позволяет подключать какое-либо приложение или программу (в нашем случае это Asterisk) к различным базам данных.

Читать еще:  Linux однопользовательский режим

В этой статье мы рассмотрим, как подключить Asterisk к MySQL для записи CDR на сторонний сервер.

— Сервер с Asterisk 13, на ОС Centos 6.5 (x86_64) / Ubuntu Server 14.10 (x86_64)

— Сервер с MySQL 5.5, на какой ОС нам в принципе не важно.

Для установки драйвера на Red Hat подобных ОС, необходимо ввести следующую команду:

Для Debian подобных ОС, необходимо выполнить следующую команду:

Далее необходим отредактировать файл /etc/odbcinst.ini. В Centos он уже существует, в Ubuntu он существует, но файл пустой.

Проверьте правильно ли указаны пути к драйверам ODBC.

1) Для Centos x86_x64:

Далее проверяем видит ли ODBC драйвер для MySQL. Вводим команду

и должны увидеть следующее:

После этого отредактируем файл /etc/odbc.ini, это файл используется для создания идентификатора для Asterisk. Т.е. Asterisk, в своей конфигурации, будет ссылается на название, указанное в этом файле.

Т.е. в нашем примере, Asterisk в своих конфигурационных файлах будет использовать идентификатор [MySQL-asteriskcdrdb].

Если мы хотим подключиться к сторонней базе данных, т.е. установленной на другом сервере, нежели Asterisk, то в файле /etc/odbc.ini необходимо просто изменить строчку server=localhost на server=IPадресБД (в нашем примере 192.168.7.17)

Далее необходимо проверить сможем ли мы подключиться к базе данных, используя утилитку ISQL. Введите следующую команду и вы должны увидеть схожий вывод.

Теперь перейдем к настройкам MySQL.

1) Подключаемся к MySQL

2) Создадим базу данных asteriskcdrdb

3) Переходим в базу данных

4) Создадим две таблицы CDR и CEL.

5) Дадим права пользователю asterisk на работы с БД asteriskadcdb

Если сервер с БД и Asterisk разные машины, то необходимо внести такую запись.

Далее необходимо пересобрать Asterisk, выбрав модули связанные с odbc.

В файл /etc/asterisk/res_odbc.conf добавляем следующие строчки.

Параметр DSN отвечает за подключение Asterisk к базе данных, указанной в файле /etc/odbc.ini. Этот параметр говорит Asterisk, что необходимо открыть и поддерживать соединение с базой данных при загрузке модуля res_odbc.so.

Перезапустим сервис Asterisk

Через CLI Asterisk проверим подключение к БД через драйвер ODBC/

Далее отредактируем файлы, связанные с CDR и CEL.

Save Lono

Linux Stuff, IT News, and Open Source Software

How to Configure Linux ODBC Connections for MS SQL

Last week at work(VoiceIP Solutions) I did some research for Asterisk PBX integration with Microsoft CRM. The customer likes open source Asterisk because of the cost savings, but they requires screen pop-ups, and click to dial from their Customer Relationship Management software. So while my manager worked on the TAPI middleware, I was charged with figuring out how to connect to the MS SQL database. This article was prompted by a desire to connect an Asterisk PBX to MS SQL, but the tutorial applies to Apache, Postfix, CRM, PHP or any Linux app that needs to do a remote query. Also, while the focus of this article is aimed at MS SQL the same steps(with a few tweaks) can be used for connecting to Postgre, Sybase, MySQL, etc…

I’m a lot more famalier with MySQL & PostgreSQL, but MS SQL I haven’t touched since I had the silly notion about 10 years ago to become a Windows 2000 MCSE. Incidently, I never did take the exams, because I was a broke student at the time and I was becoming increasingly interested in Linux and Cisco.

The logical choice is to use the UNIX ODBC driver. ODBC stands for Open Database Connectivity. ODBC is a well documented set of API’s that is available on many platforms. However, their are subtle differences in it’s implentation and the protocols that run at application layer. In other words ODBC is encapsulated when making calls to a database over a network (in this case, the TDS protocol).

I did some googling and found a number of incomplete tutorials for connecting Linux to MS SQL. This article is intended to clarify some common configuration errors and will present you with example files. For my demonstration I’m running Fedora 10 with the latest updates as of this writing. This article assumes you have a working MS SQL datebase with the proper user permissions in mixed mode. I put this one in bold because it stumped the MCSE database guy for a while.

Again, I want to point out I’m not a Microsoft DBA and will likely not be able to help you on that side of the configuration. Also, there are many versions of SQL out there and the syntax to pull data differs slightly from one version to the next. So you may need to do a little research to make the proper pulls.

The Goals of this Post:

– install ODBC and TDS on Fedora 10

– verify TDS can login into MS SQL server

– configure odbcinst.ini, odbc.ini and freetds.conf configuration files

LAB: Setup ODBC/TDS for connecting to MS SQL

We will start by using yum to install the nessasary packages. All the nessary packages should be available in the Fedora/Unbuntu repositories

]# yum list unixodbc*
Loaded plugins: refresh-packagekit
Installed Packages
unixODBC.i386 2.2.12-9.fc10 installed
unixODBC-devel.i386 2.2.12-9.fc10 installed

]# yum list freetds*
Loaded plugins: refresh-packagekit
Installed Packages
freetds.i386 0.82-4.fc10 installed
freetds-devel.i386 0.82-4.fc10 installed
freetds-doc.i386 0.82-4.fc10 installed

After these packages are installed we should be able to use freetds to test authentication network authentication with the MS SQL server. If you can’t authenticate there is no point in going to the trouble to configure ODBC. If you get errors check the MS SQL logs on the Windows server. By default remote terminal connections are turned off. So remember to turn your MS SQL server to ‘mixed mode’, and restart the service. Then create a windows user with permissions to access the database. Now TDS is ready to go!

Читать еще:  Узнать версию linux

]# tsql -S your.server.com -p 1433 -U WINDOWS-SQL-USERNAME -P PASSWORD
locale is “en_US.UTF-8”
locale charset is “UTF-8”
1>

If you made it this far you are just a few steps away from success. Our last task is to configure the freetds.conf, odbc.ini, and the odbcinst.ini. Many help articles on the web suggest using the ‘ODBCConfig’ utility. Don’t waste your time! Again I resort to using bold! The ODBCConfig utility sucks. The interface takes more time to explain than just manually editing the files.

Save yourself some trouble and hand edit the files!

Now that we have avoided this pitfall we can get to business. Launch your favorite text editor and open the /etc/odbc.ini file. On Fedora/Red Hat systems this would be the /etc/ directory.

This is important, the ‘Driver field refers to ‘/etc/odbcinst.ini’ context named ‘[ms-sql]’. The driver information is pulled from that file. The ‘Servername’ field refers to the ‘/etc/freeItds.conf’ context that I also named ‘[ms-sql]’. This threw me off for a couple days, as many posts online fail to mention this. If either of these are lines in ‘odbc.ini’ are misconfigured you will see an error like this:

]# isql -v odbc-test Your-Username Your-Password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
[root@mattop1

Now we have to define the location of the ODBC drivers in the ‘/etc/odbcinst.ini’ file. Keep in mind that actual path of the odbc/tds drivers may differ between Linux distro’s.

The ‘odbcinst.ini’ file simply directs the odbc.ini file to the appropriate driver. Above you can see that I have an entry for Postgre and MS SQL. Our last Step is to configure the freetds.conf file.

Freetds is the open source version of the Tabular Data System protocol. TDS is the application layer protocol to connect ODBC over networks. Different SQL server may require a different version of the freetds protocol. This doesn’t require a different software package, you can specify in the ‘/etc/freetds.conf’ file what version to use. In most cases ‘tds version = 7.0’ should work. See below.

The final step is connecting to the remote MS SQL server. For this we use the ‘isql’ command.

Как установить драйвер MySQL ODBC в UBUNTU 16.04?

Казалось бы, простая задача установить драйвер ODBC для MySQL в Ubuntu 16.04 свелась к нетривиальному процессу. Всё из-за того, что разработчики Ubuntu не справились с задачей обновления драйвера. Установив последнюю версию Ubuntu 16.04 вы, вероятно, уже столкнулись с проблемой поиска драйвера ODBC:

# apt-get install libmyodbc Reading package lists. Done Building dependency tree Reading state information. Done Package libmyodbc is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package ‘libmyodbc’ has no installation candidate

Доступ к предыдущим версиям MySQL можно было получить через приложения на основе ODBC, установив соответствующий драйвер простой командой:

apt-get install libmyodbc

Что же касается новой версии операционной системы Ubuntu, поиски в ее репозиториях определенно не увенчаются успехом: такого пакета больше не существует. Согласно архивам его удалили после обнаружения соответствующего бага.

Последняя версия MySQL 5.7 в отличие от предыдущих ограничивает символы в библиотеке клиентов libmysqlclient20. Вероятно, в MyODBC используются данные символы, поэтому он не может быть установлен из libmysqlclient-dev.

Вопрос поддержки драйвера MyODBC в Ubuntu остается спорным: каких-либо зависимых от него объектов не имеется, и он является своего рода альтернативой по умолчанию для пакета libreoffice-canzeley-client.

Таким образом, драйвер MyODBC, в котором используются более не совместимые с библиотекой клиентов libmysqlclient функции новой версии MySQL 5.7, пока не поддерживается в Ubuntu 16.04. Как только работа над MySQL 5.7 будет завершена, разработчики Ubuntu, возможно, вернут его. Однако такого может и не произойти.

Если у вас есть необходимость в драйвере MySQL ODBC в UBUNTU 16.04, установить его можно. Для этой цели проделайте следующие шаги:

  1. С сайта MySQL скачиваем драйвер для Ubuntu 15.10 (mysql-connector-odbc-5.3.6-linux-ubuntu15.10-x86-64bit.tar.gz)
  2. Распаковываем: tar -xvf mysql-connector-odbc-5.3.6-linux-ubuntu15.10-x86-64bit.tar.gz
  3. Копируем драйвер в папку для ODBC: sudo cp mymysql-connector-odbc-5.3.6-linux-ubuntu15.10-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
  4. Инсталлируем mysql-connector-odbc-5.3.6-linux-ubuntu15.10-x86-64bit/bin/myodbc-installer -d -a -n «MySQL» -t «DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so;»

Проверяем, что всё работает:

  1. Создаём DSN: sudo ./bin/myodbc-installer -s -a -c2 -n «test» -t «DRIVER=MySQL;SERVER=127.0.0.1;DATABASE=mysql;UID=root;PWD=123456»
  2. Подключаемся и делаем запрос:
  3. В итоге получается следующая конфигурация в файлах:

Драйвер ODBC в UBUNTU 16.04 установлен. Теперь ваше программное обеспечение без труда сможет подключиться к базе данных MySQL по протоколу TCP/IP.

Как связать Asterisk с Mysql через коннектор ODBC

Введение Установка драйвера ODBC Настройка конфигурации ODBC Установка Asterisk c модулями ODBC Конфигурирование Asterisk для работы с Mysql Заключение Введение В рабочей практике приходится сталкиваться с различными задачами, где необходимо во время вызова обращаться к базам данных из диалплана. Стандартная команда MYSQL не совсем удобна. Плюс ко всему необходимо хранить историю вызовов, а также событий […]

В рабочей практике приходится сталкиваться с различными задачами, где необходимо во время вызова обращаться к базам данных из диалплана. Стандартная команда MYSQL не совсем удобна. Плюс ко всему необходимо хранить историю вызовов, а также событий звонков астериска. Для этого используются таблицы cdr и cel соответственно. Для всего этого используется драйвер ODBC.

Читать еще:  Single mode linux

ODBC – программный интерфейс для работы с БД. Разработан был компанией Microsoft и Simba Technologies. Этот интерфейс позволяет подключать сторонние программные продукты к БД.

В данной статье будет рассмотрена установка и конфигурирование драйверов ODBC на систему Centos 6.9. А также установка Asterisk c модулями odbc и настройка asterisk для работы с mysql.

В данном разделе будет рассмотрен порядок действий для установки драйвера ODBC, а также настройка параметров для корректной работы драйвера.

Для работы драйвера необходимо установить ряд пакетов из репозиториев:

  • libtool
  • libtool-ltdl
  • libtool-ltdl-devel
  • mysql-connector-odbc
  • libiodbc
  • libiodbc-devel

Если вы не знаете установлены эти пакеты у вас или нет. Можете воспользоваться следующей командой:

Она выводит список всех установленных пакетов. В названии которых встречаются слова odbc или libtool или mysql.

В данном разделе будет описана пошаговая настройка системы для работы драйвера ODBC. Расскажем, какие файлы нужно редактировать для внесения настроек, как проверить правильность внесенных данных, а также какие пункты нужно менять в изменяемых файлах.

После установки драйвера необходимо указать в конфигурационном файле /etc/odbcinst.ini пути к файлам драйверов. Для этого необходимо найти установленные файлы:

  • libmyodbc5.so
  • libodbcmyS.so
  • libmyodbc8w.so — файл драйвера кодировки unicode
  • libmyodbc8a.so – файл драйвера кодировки ANSI

Для того, чтобы найти эти файлы воспользуемся консольной утилитой find.

Перепишем указанные директории в файл настроек ODBC. Для этого откроем его любым текстовым редактором, в данном случае это vim

Теперь надо указать пути к файлам. За это отвечают параметры Driver, Driver64, Setup, Setup64. Названия соответствуют разрядности системы i686 и x86_64. В итоге должно пучиться как на примере ниже:

После сохранения данных проверим, область видимости драйвера командой

В итоге должно отобразиться следующее:

Если после выполнения данной команды у вас в консоле отобразились данные строки, то вы всё верно настроили. Теперь надо редактировать файл, где будет указан идентификатор подключения к БД — /etc/odbc.ini. Важные поля:

  • [ ] — DSN имя для подключения к mysql (в дальнейшем будет использоваться в конфигурациях Asterisk)
  • driver – указывается название драйвера для связи с Mysql (прописывается имя указанной в файле /etc/odbcinst.ini)
  • server – адрес хоста mysql сервера
  • database – База данных для подключения
  • Port – порт подключения к mysql
  • Socket – файл сокета подключения к mysql
  • Charset –указывается кодировка записей

После редактирования должно получиться следующее:

Проверим подключение к Mysql через указанный [ ], который был прописал в файл odbc.ini. Проверить подключени можно следующей командой:

Должно вывести следующее как на скриншоте ниже

Не всегда администраторы, поддерживающие asterisk, собирают его с модулями необходимыми для работы с odbc. Поэтому в данном пункте будет показано, как пересобрать астериск с нужными модулями.

Для того, чтобы пересобрать asterisk, нужно перейти в директорию исходных файлов Asterisk. В данном случае — это /usr/src/asterisk-13.21.0/.

Поскольку астериск уже установлен, поэтому заново выполнять команду ./configure не нужно. Поэтому перейдем к следующему шагу make menuselect.

Теперь необходимо выбрать все модули, в которых в названии есть odbc.

Ниже приведена таблица с названием раздела и именем модуля.

Далее, как и при обычной установке астериска выполняем Save & Qiut, make, make install.

Для того, чтобы Asterisk писал в БД события и историю вызовов необходимо его сконфигурировать. Для этого надо указать настройки в нескольких файлах, которые находятся в директории /etc/asterisk. В данном разделе будет описано в какие файлы необходимо внести изменения, какие данные необходимо внести в них, а также возможность проверки правильности настроек.

Первым отредактируем файл res_odbc.conf. Если вы используете FreePBX, вам необходимо редактировать файл res_odbc_additional.conf.

В этом файле указывается:

  • новый [ ], который в дальнейшем будет использоваться в другом конфигурационном файле астериска
  • enabled – включение/отключение доступности текущего подключения к Mysql
  • dsn – DSN_name драйвера ODBC используемое для подключения к Mysql (указывается dsn имя, прописанное в файле /etc/odbc.ini)
  • preconnect возможность подключения при старте Астериска
  • username – пользователь mysql. (Если используется FreePBX, имя пользователя можно взять в файле /etc/freepbx.conf)
  • password – пароль пользователя mysql (Если используется FreePBX его можновзять в файле /etc/freepbx.conf)
  • database – имя базы данных, к которой астериск будет подключаться

В итоге должно получиться следующее:

Сохраняете изменения в этом файле, далее нужно вносить изменения в файл cdr_odbc.conf (если установлен FreePBX – cdr_adaptive_odbc.conf).

  • [ ] — имя подключения к БД
  • connection – Имя dsn. Которое указывалось в res_odbc.conf
  • loguniqueid – разрешить логирование uniquieid
  • table – таблица для заполнения истории звонков

В итоге должно получиться как на скриншоте ниже:

Далее сохраняются изменения и необходимо их применить. Для этого открывается консоль астериска командой asterisk rvvvv. Из этой консоли выполнить две команды:

  • module reload res_odbc.so — применяет изменения файла res_odbc.conf
  • module reload cdr_odbc.so — применяет изменения файла cdr_odbc.conf

Проверить правильность настроек можно командой odbc show из консоли астериска. Если выполнено все правильно то должно получиться как на скриншоте ниже.

После выполнения указанных выше действий вы сможете просматривать историю вызовов (CDR – call detail records). Также можно выполнять действия с данной таблицей из диалплана обращаясь к ней встроенной функцией астериска CDR()— что позволяет гибко оперировать логикой звонка.

Если включить фантазию и немного подумать, можно прикрутить еще и использование дополнительных таблиц через дополнительный файл func_odbc.conf. Но это уже другая статья

Ссылка на основную публикацию
Adblock
detector