Установка Ubuntu 16.04 LTS: как установить ODBC?

16

После установки новой новой копии Ubuntu 16.04 я попытался установить ODBC MySQL в соответствии с официальной документацией по адресу https://help.ubuntu.com/community/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

Я вижу, что это хорошее начало!

Поиск в ODBC-хранилище пакетов также не был особенно полезен. Это очень важная часть любой современной системы Linux! Куда это делось ?!

PS: Обновление документации на help.ubuntu.com было бы неплохо!

Отредактировано, чтобы добавить: Кроме того, кажется, что файл драйвера libmyodbc.so не существует в этой версии Ubuntu.

Эрни
источник
попробуйте apt-cache search libmyodbcперечислить пакеты с похожим именем. Это то, о чем «ссылается другой пакет». Или проверьте, указан ли он в синаптике. Не забудьте apt-get updateперед установкой / обновлением пакетов с помощью apt.
Lord_PedantenStein
Я не беспокоюсь по поводу apt-cache, я просто ищу package.ubuntu.com .
Эрни
В любом случае, libmyodbcне существует на 16.04.
Edwinksl
Здорово. Как мне заставить ODBC работать на 16.04? У меня есть программное обеспечение, которое абсолютно необходимо.
Эрни

Ответы:

9

Загрузите непосредственно с dev.mysql.com: https://dev.mysql.com/downloads/connector/odbc/

Выберите Ubuntu 16.04 64-битную или 32-битную (возможно, 64-битную), загрузите TAR ball, затем скопируйте файл libmyodbc5a.soв/usr/lib/x86_64-linux-gnu/odbc/

затем создать /etc/odbcinst.ini

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

и /etc/odbc.ini

[my-connector]
Description           = MySQL connection to  database
Driver                = MySQL
Database              = mydb
Server                = localhost
User             = dbuser
Password              = dbpass
Port                  = 3306
Socket                = /var/run/mysqld/mysqld.sock

Обратите внимание, что тег username - это User (а не username, как видно из некоторых примеров), а сокет находится под, /var/runа не под/var/lib

echo "select 1" | isql -v my-connector

тогда работал на меня

cerien
источник
1
Обратите внимание, что предложенный файл odbcinst.ini предназначен для версии драйвера ANSI. Если вам нужны символы UNICODE, вам лучше использовать версию UNICODE: libmyodbc5w.so (в строке драйвера)
Marc Vanhoomissen
Спасибо за Ваш ответ. Это работает как шарм в Ubuntu 16.04
e_soroush
На всякий случай, если кто-то другой столкнется с проблемой, с которой я столкнулся: «последней» версией на 2018-09-01 была версия 8.12. Я столкнулся с самой последней ошибкой в ​​обоих из них и попытался использовать версию 5.X. Но на сайте dev.mysql.com было доступно только 8.12 или 5.11. Я искал в интернете версию 5.10, которая, я был почти уверен, будет работать, и нашел ее на зеркале FTP. Таких, в основном, в университетах. Итак, короткая история: чтобы понизить рейтинг, попробуйте прибегнуть к помощи «mysql ftp mirror»
JDS
2

Пакет является для дружественного и его можно увидеть здесь . Поэтому его следует установить. Убедитесь, что вы запускаете sudo apt-get updateперед установкой. Кроме того, убедитесь, что репозиторий юниверсов для Xenial является частью ваших источников (как видно из приведенной выше ссылки, этот пакет принадлежит репозиторию юниверсов ). Вы можете проверить, что этот источник является частью ваших доступных источников в etc/apt/sources.listфайле. Там должна быть строка, такая как:

deb http://com.archive.ubuntu.com/ubuntu/ xenial universe

(Зеркало может отличаться от com.archive...)

Если вы все еще не можете установить его (что странно), перейдите на указанный выше веб-сайт, выберите версию своей архитектуры и загрузите файл .deb. Например, для amd64 файл выглядит так: http://launchpadlibrarian.net/141005765/libmyodbc_5.1.10-3_amd64.deb . Затем откройте терминал, перейдите в папку, содержащую файл, и запустите:

sudo dpkg -i file.deb
sudo apt-get install -f

(Последняя команда на случай, если некоторые зависимости не удовлетворены)


источник
4
Пакет раньше существовал, но он был удален из universeрепозитория, как вы можете видеть из его истории публикации на launchpad.net/ubuntu/+source/myodbc/5.1.10-3/+publishinghistory . Причина его удаления указана по адресу bugs.launchpad.net/ubuntu/+source/myodbc/+bug/1564856 . Включение universeрепо не поможет. Пакет «доступен» в особом смысле этого слова, а именно, что его .debфайл до удаления доступен. Можно установить .debфайл с помощью sudo dpkg -i, но пакет некоторое время не обслуживался и, вероятно, поврежден.
Edwinksl
2

Я нашел его в http://dev.mysql.com/downloads/connector/odbc/ (я выбрал «Ubuntu Linux 15.10 (x86, 64-bit), Compressed TAR Archive»)

Загрузите его и извлеките файлы, затем вы получите libmyodbc5a.so (для системы ANSI) и libmyodbc5w.so (для Unicode).

Demmie
источник