instalando o XtraBackup com libmysqlclient.so.18

1

Situação atual

Gostaria de instalar o XtraBackup no meu VPS (Centos 5) onde meu banco de dados principal está em execução. Durante a instalação do rpm, ele me disse que falta uma dependência chamada perl(DBD::mysql) .

Quando tento yum install dessa dependência, isso me diz:

Error: Missing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) is needed by package perl-DBD-MySQL-3.0007-2.el5.x86_64 (base) Error: Missing Dependency: libmysqlclient.so.15()(64bit) is needed by package perl-DBD-MySQL-3.0007-2.el5.x86_64 (base)

Quando eu verifico /usr/lib/mysql , alguns links simbólicos inexistentes chamados libmysqlclient.so.15 estão lá. Os únicos links simbólicos funcionais são libmysqlclient.so e libmysqlclient_r.so e estão vinculados a /usr/lib64/libmysqlclient.so , que é um link simbólico para libmysqlclient.so.18 .

Parece que eu só tenho a versão 18 instalada.

Situação anterior

Eu também instalei o XtraBackup em outro VPS (Centos 6) meu. Exatamente o mesmo erro ocorreu lá. Ele finalmente consertou isso baixando o compat 5.1 lib compartilhado do mysql (MySQL-shared-compat-5.1) que cobria diferentes versões das bibliotecas, 12 até 16 eu acredito.

Depois disso, pude instalar MySQL-shared-compat-5.1 e XtraBackup bem. O único problema que permaneceu foi que o PHP usa o arquivo libmysqlclient.so.18 e, portanto, o serviço httpd não iniciaria mais. Eu consertei isso com uma (eu acho) correção suja ... Apenas criando um link simbólico libmysqlclient.so.18 -> libmysqlclient.so.16 . Depois disso, o apache foi carregado sem problemas. Ainda não parece certo.

Eu não sou muito experiente com a maioria dessas coisas, então espero que alguém possa me explicar qual é a correção correta, para que o Apache e o XtraBackup sejam executados com suas versões do libmysqlclient, se possível.

    
por Martin 25.01.2014 / 17:20

1 resposta

1

As bibliotecas cliente do MySQL estão ligadas à versão do MySQL a partir da qual elas são construídas. A biblioteca DBD :: mysql do Perl é compilada contra as bibliotecas do cliente MySQL disponíveis quando é construída. Quando o Redhat (e, por extensão, o CentOS) constrói os RPMs, eles os constroem a partir da fonte fornecida no momento da compilação.

A instalação padrão do MySQL do CentOS 5 vem com o MySQL 5.0.95, que fornece libmysqlclient.so.15. Parece que seu sistema tem uma versão mais nova do MySQL instalada. Se você estiver usando o XtraBackup da Percona, você pode estar executando o Percona Server (Percona Server é uma versão atualizada do MySQL disponibilizada pela Percona).

Você tem algumas opções:

  1. Se o Percona Server for instalado por meio do RPM:
    Instale o RPM Percona-Server-shared-compat dos repositórios do Percona

  2. Se uma nova versão do MySQL é instalada via RPM:
    Tente encontrar uma biblioteca de compatibilidade semelhante ao que você fez no CentOS 6.

  3. Se uma nova versão do MySQL for instalada manualmente:
    Recompile o RPM de origem perl-DBD-mysql em um sistema com o arquivo libmysqlclient.so.18 e os cabeçalhos de desenvolvimento associados e instale o binário resultante. O CentOS fornece instruções para reconstruir a partir de um RPM de origem . Como alternativa, você também pode baixar e instalar o Percona XtraBackup a partir da fonte.

O CentOS (e o RHEL) esperam que todos os softwares instalados sejam instalados usando RPMs e yum. Quando você sai disso, você corre o risco de não mais usar RPMs para softwares vinculados a suas instalações personalizadas. Parece que esse é o caso aqui, porque não apenas você não tem uma versão adequada do perl-DBD-mysql disponível, mas também tem o PHP vinculado à versão mais recente do MySQL.

    
por 28.01.2014 / 04:54