Меню Рубрики

Установка mysql odbc debian

Настройка подключения Asterisk 16 через ODBC к MariaDB в Debian 10

В данном руководстве мы расскажем как подключить Asterisk 16 ODBC MariaDB на операционной системе Debian 10 (buster) через ODBC-коннектор.

Драйвер unixODBC в данный момент (дата статьи: 2019-10-12) недоступен в репозитории пакетов Debian, но вы можете установить и настроить его самостоятельно. Мы рассмотрим только подключение к MariaDB, а это значит, что Asterisk 16 и MariaDB у нас уже установлены. Если вы пропустили установку, воспользуйтесь статьей по установке Asterisk 16 на Debian 10.

  • Debian 10 (buster);
  • Asterisk 16 LTS;
  • MariaDB 10.3

Asterisk 16 ODBC MariaDB

Установка необходимых пакетов ODBC и утилит

Установка клиенткой библиотеки MariaDB

Этот пакет необходим для сборки драйвера unixODBC. Он накладывается на libmariadb-dev , но предоставляет дополнительные заголовочные файлы, которые отсутствуют в Debian 10.

Настройка подключения к Asterisk 16

Конфигурация файла /etc/odbcinst.ini

Мы настраиваем пул для подключения так, как это, вероятно, требуется большинству пользователей. Обратитесь к документации unixODBC, чтобы узнать больше о функции соединений ODBC.

Также может быть использована конфигурация для PostgreSQL, которую вы можете закомментировать, если вы не планируете настраивать PostgreSQL. Комментарии начинаются с символа хеш (#).

Вы также можете проверить odbcinst, чтобы убедиться, что конфигурация найдена.

Вывод должен быть примерно следующий:

Конфигурация файла /etc/odbc.ini

Не забудьте изменить значения:

  • Server=localhost
  • User=your_asterisk_user
  • Password=your_asterisk_user_password
  • Database=asteriskcdrdb

Конфигурация файла /etc/asterisk/cdr_adaptive_odbc.conf

Конфигурация файла /etc/asterisk/res_odbc.conf

Не забудьте изменить значения:

  • username=your_asterisk_user
  • password=your_asterisk_user_password

Конфигурация файла /etc/asterisk/cel_odbc.conf

Конфигурация файла /etc/asterisk/cdr_odbc.conf

Подводя итог, установка и настройка Asterisk 16 ODBC MariaDB окончена! Подключение настроено и теперь ваши CDR данные должны успешно записываться в БД.

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

источник

Установка MySQL в Debian 10

MySQL наиболее широко используемая система управления базами данных (СУБД) с открытым исходным кодом. Она используется для хранения и извлечения данных во многих приложениях. В официальных репозиториях Debian 10 находится СУБД MariaDB в качестве альтернативы для MySQL, и в большинстве случаев, она работает хорошо.

Но если вы хотите, получить СУБД с характеристиками присущими лишь MySQL, то вам потребуется установить ее из официального репозитория MySQL. Далее мы разберем как выполняется установка MySQL Debian 10 от разработчиков.

Как установить MySQL 8 в Debian 10

Шаг 1: Добавление репозитория MySQL

Чтобы установить MySQL в Debian, вам необходимо скачать и установить APT репозиторий содержащийся в .deb пакете, который управляет настройкой и установкой программного обеспечения MySQL.

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb

Во время установки пакета вам будет предложено настроить репозиторий MySQL APT для выбора версий сервера MySQL и других компонентов, которые вы хотите установить. Для установки последней версии оставьте все как есть, перейдите к Оk и нажмите Enter.

Шаг 2: Установка MySQL

После добавления репозитория обновите кэш пакетов apt и установите пакет сервера MySQL. При этом также будут установлены пакеты для клиента и другие зависимости.

sudo apt update
sudo apt install mysql-server

Во время установки появится диалоговое окно конфигурации, в котором нужно будет установить пароль пользователя root для MySQL. Введите безопасный и надежный пароль, а затем подтвердите его.

После этого вас предупредят о новой системе аутентификации, на основе SHA256, использующейся в MySQL, нажмите Ok. Выберите плагин аутентификации (оставьте опцию по умолчанию, чтобы использовать рекомендуемый плагин) и нажмите кнопку Enter, чтобы завершить процесс установки.

Когда установка пакетов завершится, установщик запустит службу MySQL и настроит для неё автозагрузку. Чтобы убедиться, что служба MySQL работает, проверьте ее состояние с помощью следующей команды.

sudo systemctl status mysql

Есть несколько команд systemctl, которые вам нужно знать, чтобы управлять (запускать, перезапускать и останавливать) службу MySQL, когда это будет необходимо:

sudo systemctl start mysql
sudo systemctl restart mysql
sudo systemctl stop mysql
sudo systemctl reload mysql

Шаг 3: Настройка безопасности MySQL

Сервер MySQL из коробки не защищен, и для повышения безопасности потребуется запустить сценарий mysql_secure_installation. Выполните:

Прочитайте описание каждого вопроса и правильно ответьте на них. Во-первых, введите пароль пользователя root, который вы задали во время установки пакета. Вы можете выбрать y (для Yes) или n (для No), чтобы использовать или не использовать компонент VALIDATE PASSWORD.

Когда сценарий предложит вам установить новый пароль для пользователя root выберите No (вы уже установили его во время установки пакета). Затем внимательно следуйте другим подсказкам и выберите y (для YES), чтобы удалить анонимных пользователей, запретить удаленный вход под root в систему, удалить тестовую базу данных и перезагрузить таблицу привилегий.

Настройки MySQL Debian завершены, можно переходить к использованию.

Шаг 4: Проверка MySQL

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

Читайте также:  Установка вайбер на мегафон

Выводы

В этой статье мы рассказали, как выполняется установка MySQL Debian 10. Если у вас есть какие-либо вопросы по этой статье, спрашивайте в комментариях!

источник

Подключение 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) к различным базам данных.

В этой статье мы рассмотрим, как подключить 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.

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

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

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

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

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

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

Теперь перейдем к настройкам 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.

источник

Как установить драйвер 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, установив соответствующий драйвер простой командой:

Что же касается новой версии операционной системы 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;U >
  2. Подключаемся и делаем запрос:
  3. В итоге получается следующая конфигурация в файлах:

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

источник

MS ODBC Driver 13 + PHP 7.0 + Debian 9

В продолжение предыдущего псто. Таки заставил я работать этот несчастный MSSQL-драйвер для PHP7. Это называется «среди багов нащупал дорогу».

Во-первых, отвечаю на вопрос из комментов, почему не годится PDO_DBLIB. Наш программист говорит, что он слишком неинформативен. То есть, ему по долгу службы и в соответствии с принятой парадигмой построения решений приходится формировать сложные навороченные SQL-запросы. И в «стандартном» механизме «коробочных» PHP-коннекторов нет никакой возможности отследить, а не возникло ли какой-нибудь ошибки в процессе выполнения этого запроса. Стандартный пример: посылаем в одном запросе два SELECT-а, один из существующей таблицы, второй — из несуществующей. В зависимости от порядка следования этих SELECT-ов мы можем либо получить, либо не получить ссылку на результирующий Dataset. И единственной возможностью контролировать всё это дело является парсинг stdout-а от SQL Server-а на предмет наличия в нём Warning-ов, зачастую совершенно неинформативных. Что ни разу не удобно. Поэтому меня и попросили подключить «родной» ODBC-шный коннектор.

Далее, краткая инфа и ссылки, чтобы прежде всего самому потом не забыть как это делается. Речь идёт о дистрибутиве Debian 9 (Stretch) amd64.

Во-первых, 7-ая «пыха» полноценно появилась только в Stretch-е. И раз уж решено с оным связываться, то городить смесь из стабильного и тестируемого дистрибутива нет никакого смысла. Проще уж сразу целиком разворачивать тестируемый. Баги попадаются, да. Но по мере приближения к релизу их всё меньше. Во-вторых, MS принципиально отказалась от поддержки i386, так что придется брать amd64. И даже если каким-то макаром удастся собрать сам PHP-коннектор из исходников, то вот ODBC-драйвер по-любому придется ставить бинарный. Может я плохо искал, но сырцов его я пока не встретил.

Теперь о подводных камнях. Вроде бы по зависимостям там ничего особо экзотического нет. Но нужно иметь в системе установленные пакетики: libcurl3, unixodbc и внезапно. libssl1.0.0 из репозитория Jessie. Вот так неочевидно, ага. Со штатными libssl1.0.2 и libssl1.1 оно заводиться не хочет, требует обязательно версию потухлее. Еще из неочевидных моментов — нужно позаботиться о том, чтобы в системе присутствовала локаль «en_US.UTF-8». Без неё почему-то никак и никуда. Также если SQL-сервер слушает на нестандартном порту, то в строке подключения его нужно указывать через запятую, а не через двоеточие.

  1. На момент написания этого псто актуальной версией ODBC-библиотеки была 13-ая. Подходит от 16-ой убунты. Ссылки на DEB-пакеты: раз, два. Ставятся «как обычно», дополнительных зависимостей с сайта MS за собой не тянут, работают «из коробки».
  2. Сами PHP-шные коннекторы. Бинарники тут (версия релиза 4.0.8). В архиве лежит четыре разных библиотеки: «обычная», PDO (PHP Data Object), «NTS» (non thread-safe) и «TS» (thread-safe). Зачем они так собирают непонятно, потому что для Linux-а thread-safe версии неактуальны.

Так что берем из архива «php_sqlsrv_7_nts.so», редактируем права на доступ к файлу, копируем в «/usr/lib/php/20151012/» и создаем ini-конфиги для подключения модуля в «/etc/php/7.0/mods-available», а также символические ссылки на них. Вроде больше ничего шаманить не надо. Если же что-то не работает, то проверяем выхлоп команд

ldd /usr/lib/php/20151012/php_sqlsrv_7_nts.s o
ldd /opt/microsoft/msodbcsql/lib64/libmsodbc sql-13.1.so.4.0

на предмет нехватающих библиотек.

Эх, чего только не сделаешь для этих беспомощных программистов. (шутка)

источник

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

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

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

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
Читайте также:  Установка пружин на рессоры л200

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

Она выводит список всех установленных пакетов. В названии которых встречаются слова 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.

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

Call Detail Recording cdr_odbc cdr_adaptive_odbc
Channel Event Logging cel_odbc
Resource Modules res_odbc res_odbc_transaction

Далее, как и при обычной установке астериска выполняем 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. Но это уже другая статья

источник

Добавить комментарий