Instalando o Ubuntu 16.04 LTS: Como instalar o ODBC?

15

Depois de instalar uma nova cópia do Ubuntu 16.04, tentei instalar o MySQL ODBC conforme a documentação oficial em 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

Eu posso ver que isso está começando muito bem!

A pesquisa no ODBC do repositório de pacotes também não foi útil. Esta é uma parte muito importante de qualquer sistema Linux moderno! Para onde foi ?!

PS: Atualizar a documentação em help.ubuntu.com também seria legal!

Editado para adicionar: Além disso, parece que o arquivo do driver libmyodbc.so não existe nesta versão do Ubuntu.

Ernie
fonte
tente apt-cache search libmyodbclistar pacotes com um nome semelhante. É sobre isso que se refere o "referido por outro pacote". Ou verifique se está listado em sináptico. Não esqueça apt-get updateantes de instalar / atualizar pacotes com o apt.
187416 Lord_PedantenStein
Eu não me preocupo com o apt-cache, apenas procuro packages.ubuntu.com .
Ernie
De qualquer forma, libmyodbcnão existe para 16.04.
edwinksl
Legal. Como obtenho o ODBC trabalhando no 16.04? Eu tenho um software que exige absolutamente isso.
21416 Ernie

Respostas:

9

Faça o download diretamente do dev.mysql.com: https://dev.mysql.com/downloads/connector/odbc/

Selecione Ubuntu 16.04 64 bits ou 32 bits (provavelmente 64 bits), faça o download da bola TAR e copie o arquivo libmyodbc5a.sopara/usr/lib/x86_64-linux-gnu/odbc/

então, crie /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

e /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

Observe que a tag de nome de usuário é Usuário (e não o nome de usuário, como visto em alguns exemplos) e o soquete está abaixo /var/rune não abaixo/var/lib

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

então trabalhou para mim

cerien
fonte
11
Observe que o odbcinst.ini, conforme proposto, é para a versão ANSI do driver. Se você precisar de caracteres Unicode, você é melhor fora com a versão Unicode: libmyodbc5w.so (na linha do driver)
Marc Vanhoomissen
Obrigado pela sua resposta. Funciona como um encanto no Ubuntu 16.04
e_soroush 8/17
Apenas no caso de alguém encontrar o problema, eu acerto: O "mais recente" em 01/09/2018 era a v8.12. Encontrei um bug no último dos dois e tentei usar a versão 5.X. Mas o site dev.mysql.com tinha apenas 8.12 ou 5.11 disponíveis. Procurei na Internet a versão 5.10, que eu tinha certeza de que funcionaria, e a encontrei em um espelho FTP. Existem vários deles, principalmente nas universidades. Então, para encurtar a história: para fazer o downgrade do seu downgrade, tente pesquisar no "mysql ftp mirror"
JDS
2

O pacote está disponível para o Xenial e pode ser visto aqui . Portanto, ele deve instalar. Certifique-se de executar um sudo apt-get updateantes de instalar. Além disso, verifique se o repositório do universo para o Xenial faz parte de suas fontes (como mostra o link acima, este pacote pertence ao repositório do universo ). Você pode verificar se essa fonte faz parte das fontes disponíveis no etc/apt/sources.listarquivo Deve haver uma linha como:

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

(O espelho pode ser diferente de com.archive...)

Se você ainda não conseguir instalá-lo (o que é estranho), acesse o site acima, escolha sua versão da arquitetura e faça o download do arquivo .deb. Por exemplo, para amd64, o arquivo é este: http://launchpadlibrarian.net/141005765/libmyodbc_5.1.10-3_amd64.deb . Em seguida, abra um terminal, vá para a pasta que contém o arquivo e execute:

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

(O último comando é no caso de algumas dependências não serem atendidas)


fonte
4
O pacote costumava existir, mas foi excluído do universerepositório, como você pode ver em seu histórico de publicação em launchpad.net/ubuntu/+source/myodbc/5.1.10-3/+publishinghistory . A razão para sua remoção é dada em bugs.launchpad.net/ubuntu/+source/myodbc/+bug/1564856 . Ativar o universerepo não ajudaria. O pacote está "disponível" em um sentido muito particular da palavra, ou seja, seu .debarquivo antes da remoção está disponível. Pode-se instalar o .debarquivo sudo dpkg -i, mas o pacote não é mantido por um tempo e provavelmente está quebrado.
edwinksl
2

Encontrei-o em http://dev.mysql.com/downloads/connector/odbc/ (selecionei "Ubuntu Linux 15.10 (x86, 64 bits), Compressed TAR Archive")

Faça o download e extraia os arquivos, e você obtém libmyodbc5a.so (para sistema ANSI) e libmyodbc5w.so (para Unicode).

Demmie
fonte