unixODBC Driver Manager "Имя источника данных не найдено", хотя он на самом деле есть - MariaDB - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь настроить интерфейс OBDC для двух разных экземпляров MariaDB, и я полностью озадачен тем фактом, что один работает, а другой нет.

Один дБ («платан») работает в обычной установке MariaDB на CentOS7 на 3306, тогда как другой дБ («tlex») находится в экземпляре MariaDB внутри контейнера Docker в той же ОС и работает на порту 3301. Я должен держать эти два экземпляра отдельно.

Обе базы данных доступны из командной строки:

mysql -u mrtlex -pPASSWORD -h 127.0.0.1 -P3306 tlex

и

mysql -u platan -pPASSWORD -h 127.0.0.1 -P3301 platan

позвольте мне подключиться без помех.

У меня есть драйвер MariaDB, определенный в odbcinst.ini:

[MariaDB]
Description = MariaDB Connector/ODBC v.3.0
Driver64 = /usr/local/lib64/libmaodbc.so

И у меня есть два источника данных, определенных в odbc.ini:

[tlex]
Description         = TLex dockerized
Driver              = MariaDB 
Database            = tlex
Server              = 127.0.0.1
Uid                 = mrtlex
Password            = PASSWORD
Port                = 3301

[platan]
Description         = MariaDB localdb
Driver              = MariaDB
Database            = platan
Server              = 127.0.0.1
Uid                 = platan
Password            = PASSWORD
Port                = 3306

odcbinst, похоже, распознает оба источника данных:

[root@CentOS-73-64-minimal ~]# odbcinst -q -s
[tlex]
[platan]

И все же я могу подключиться только к платану, а не к источнику данных tlex:

[root@CentOS-73-64-minimal ~]# iusql -v tlex
[unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLDriverConnect
[root@CentOS-73-64-minimal ~]# iusql -v platan
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

Это не имеет никакого смысла для меня. Я могу получить доступ к обеим базам данных из командной строки, обе базы данных настроены так же, как источники данных ODBC, оба источника данных указаны в odbcinst -q -s, но я могу подключиться только к одной из них через ODBC.

В чем может быть причина? Как я мог бы дополнительно устранить эту проблему?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 06 января 2019

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

...