Я пытаюсь настроить интерфейс 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.
В чем может быть причина? Как я мог бы дополнительно устранить эту проблему?
Большое спасибо заранее.