Como configuro o cluster do Mysql?

7

Estou tentando configurar mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz em ubuntu 10.04 server nas últimas três semanas e ainda não obtive êxito.

Os links que eu segui são:

  

link

     

link

     

link

     

link

     

link

Todas as configurações nos links acima são quase as mesmas com algumas pequenas mudanças e eu apenas experimentei todas, se houver alguma, mas nenhuma.

Eu já fiz uma postagem em serverfault , mas ainda não consegui capaz de fazer funcionar.

Eu sempre volto aqui se nada der certo depois de muitas tentativas e agora estou.

Além disso, não estou entendendo se o mysql-server ou mysql-client precisa ser instalado junto com mysql-cluster else mysql-cluster sozinho é suficiente para executar mysqld nos nós SQL. No meu caso, a configuração é 3 nodes=(data1+sql1 + data2+sql2 + mgmt node) .

Erros frequentes :

  

/etc/init.d/mysql.server start

Saída:

Starting MySQL
 * Couldn't find MySQL manager (/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)

Eu até tentei copiar /usr/local/mysql/bin/* para /usr/bin , mas ainda não uso, já que estava dizendo . * Manager of pid-file quit without updating file. enquanto tentava começar!

  

Ao tentar iniciar o daemon mysql no nó data / sql

     

cd / usr / local / mysql

     

./ bin / mysqld_safe --user = mysql --defaults-file = / etc / my.cnf & amp;

Saída:

[1] 2338
root@web2:/usr/local/mysql# 111208 15:53:47 mysqld_safe Logging to syslog.
111208 15:53:47 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
111208 15:53:47 mysqld_safe mysqld from pid file /var/lib/mysql/web2.pid ended

[1]+  Done                    ./bin/mysqld_safe --user=mysql --defaults-file=/etc/my.cnf

Alguém me ajuda aqui, por favor ?. Alguém esclarecer se houver algum problema com o Ubuntu ou com a configuração do cluster ?. Eu tenho que implementar isso em servidores de nuvem, uma vez que eu sou bem sucedido.

Obrigado!

Atualizar : 1

Agora, nos nós SQL / Data, eu já removi mysql-server e mysql-client , que geralmente instalo como um pacote básico de qualquer nova instalação. Eu os removi executando o seguinte comando e em ambos os nós apenas mysql-cluster está disponível e não consegui configurar:

  

apt-get remove o mysql-client mysql-client-5.1 mysql-client-core-5.1   mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1

Atualização : 2

Corrigi os problemas que tive. Agora tenho as seguintes coisas a serem feitas.

  1. Qual é o melhor método para adicionar / remover mgmt , SQL/DATA nós on-line?

    EDIT : eu tentei mysql docs para adicionar nós on-line, mas confuso e não funcionou, a menos que eu desligue todos os nós e remova os logs sob /var/lib/mysql-cluster em todos os nós.

  2. Quais configurações adicionais devo incluir no meu arquivo my.conf para melhor ajuste de desempenho como DataMemory e IndexMemory , se alguém usar para produção, pode recomendar ou colá-lo aqui, por favor?

Atualização : 3

  1. Como converter todos os mecanismos de tabelas do banco de dados para o NDB que também possuem chaves estrangeiras?

    EDIT : Encontrei um script para converter todos os mecanismos de tabela, mas todas as tabelas do meu banco de dados não são convertidas quanto ao erro: ERROR 1217 (23000) na linha 11: não é possível excluir ou atualizar uma linha pai: uma restrição de chave estrangeira falha

  2. Existe uma maneira de possuir os recursos do NDB & amp; InnoDB com replicação de cluster e multi-master sem risco (down time)?

por user3215 08.12.2011 / 12:51

1 resposta

6

Oh .., depois de várias tentativas eu consegui trabalhar sozinho e isso foi feito até agora. Os links são tutoriais muito legais e eu pude corrigir os problemas que tive dessa maneira.

  

Também não estou entendendo se o mysql-server ou mysql-client precisa ser instalado junto com o mysql-cluster, senão o mysql-cluster sozinho é suficiente para executar o mysqld em nós SQL.

A : Não tenho certeza se mysql-cluster funciona com mysql-server e mysql-client , que já estão instalados a partir de apt , mas tenho certeza de que esses ou qualquer pacote extra NÃO são necessários para o mysql-cluster no Ubuntu, pois ele tem todos os pacotes. Portanto, posso executar o mysqld do pacote extraído do cluster e nada necessário para que isso seja instalado adicionalmente nos nós SQL.

  

./ bin / mysqld_safe --user = mysql --defaults-file = / etc / my.cnf & amp;

A : Não é necessário executar mysqld manualmente e, em vez disso, pode usar /etc/init.d/mysql.server start copiando de /usr/local/mysql/support-files/mysql.server para iniciar o nó mysqld / SQL.

  

Iniciando o MySQL    * Não foi possível encontrar o gerenciador do MySQL (/ usr / bin / mysqlmanager) ou servidor (/ usr / bin / mysqld_safe)

A : acima, o erro encontrado ao tentar iniciar o mysql.server e foi porque eu tinha mysql-server e mysql-client já instalados. Aqueles devem ser completamente removidos (não tenho certeza se posso executar cluster com sucesso junto com eles) e eu fiz. Aqueles não foram completamente removidos (provavelmente eu tenho que usar apt --purge remove ). Verifique com dpkg --get-selections | grep mysql , se você encontrar deinstall , então estes não são completamente desinstalados, o que deve ser, senão, um terá que enfrentar o erro acima. Executar abaixo o comando removeu-os completamente e eu pude iniciar o mysql.server sem erros.

aptitude purge $(dpkg --get-selections | grep deinstall | sed s/deinstall//) #To completely remove all deinstall package
pkill -9 mysqld
/etc/init.d/mysql.server
  

............ * O gerenciador de arquivo pid sai sem atualizar o arquivo.

A : enfrentei o erro acima muitas vezes durante meus testes ao tentar iniciar mysql.server . Eu poderia evitar isso simplesmente concedendo permissão em data para o usuário mysql como chown -R mysql:mysql /usr/local/mysql/data , esse erro foi porque eu estava tentando extrair o mysql-cluster recentemente número de vezes e assim o erro como o usuário mysql não pôde criar o arquivo pid sob diretório de dados para nenhuma permissão e log de erro em /var/lib/mysql-cluster no nó sql / data me ajudou a rastrear isso.

Deve ser muito específico ao se atribuir / usr / local / mysql / data , se você apenas fizer chown -R mysql:mysql /usr/local/mysql e ficar quieto, ele não funcionará e o mesmo erro será lançado!

Após conceder permissão, verifique se o mysqld está funcionando e executando emitindo /usr/local/mysql/bin/mysql -uroot -p . Mesmo depois de digitar a senha você não pode se conectar e lança erro, então a senha do root do mysql não está definida ou você esqueceu. Use o comando abaixo para redefinir a senha de root do mysql e tente conectar-se novamente:

/usr/local/mysql/bin/mysqladmin -uroot password your-new-password-here
Nem eu estou satisfeito com a resposta nem estou disposto a aceitar e me premiar, pois tenho muito mais a fazer neste agrupamento. Estou disposto a atualizar minha pergunta com mais consultas e aguardo a atribuição de pontos a outros que irão responder. PERGUNTA ACTUALIZADA!

Obrigado!

Atualizar

Nós pensamos em usar o MySQL Cluster para servidores web de produção, onde o apache-tomcat servia algumas páginas estáticas e jsp, mas por causa do slow joins , sem suporte para foreign keys e assim por diante ... questões cruciais em nosso ambiente e funciona bem no mecanismo Innodb do que no NDB, estou terminando de não usar o cluster do mysql e olhando novamente para a replicação, embora tenha problemas de sincronização. Obrigada!

    
por user3215 11.12.2011 / 16:46