[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mysql - replicação



Caio, eu jah fiz essa configuracao.
quando tu tem uma estrutura master master tu tem que cuidar tbm com o auto-increment tens que dizer para o mysql criar os indices de 2 em 2 e dizer que teu server eh o par ou impart
basicamente no server 1 tens que adicionar
auto_increment_increment      = 2 # criar de 2 em 2
auto_increment_offset         = 1 # comecando por 1, sendo assim 1,3,5,7

no server 2 tem que colocar:
auto_increment_increment      = 2 # criar de 2 em 2
auto_increment_offset         = 2 # comecando por 2, sendo assim 2,4,6


Quanto ao erro dos servers ID's o que pode ter acontecido, eh voce ter iniciado os 2 masters com o mesmo ID, ter rodado algum comando que altere data e isso tenha sido replicado para o outro servidor, mesmo se tu acertar os ID's dos servers, o comando antigo ainda esta com o ID antigo, nesse caso temos duas opcoes:
1. reconfigurar a replicacao apagando os logs antigos
2. ajustar em cada server a posicao do relay log

Grato.
Marcelo Altmann

On 29/10/12 22:01, Caio Ferreira wrote:
Prezado Rodolfo

Executei o comando "find -name *.cnf" e tive como resultado o seguinte

$ sudo find -name *.cnf
./etc/mysql/debian.cnf
./etc/mysql/my.cnf
./etc/mysql/conf.d/mysqld_safe_syslog.cnf
./usr/share/doc/mysql-server-5.1/examples/my-small.cnf

Pelo visto, no diretório /etc/mysql existem dois arquivos de
configuração, debian.cnf e my.cnf. Executei o aplicativo lsof mais
infelizmente não consegui identificar qual arquivo o mysql esta
utilizando.

Olhando o arquivo "/etc/init.d/mysql" encontrei a seguinte informação.

CONF=/etc/mysql/my.cnf
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"

Aparentemente o mysql utiliza o arquivo my.cnf pois no mesmo arquivo
de configuração tem o seguinte

## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
  # check for config file
  if [ ! -r /etc/mysql/my.cnf ]; then
    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read.
See README.Debian.gz"
    echo                "WARNING: /etc/mysql/my.cnf cannot be read.
See README.Debian.gz" | $ERR_LOGGER
  fi

Alguma idéia?

Desde já agradeço pela ajuda.

Caio Abreu Ferreira

2012/10/23 Rodolfo <rof20004@gmail.com>:
Deve ser porque ele deve esta se referindo a outro arquivo de configuracao,
onde os servers estao com o mesmo ID. Procure por outros arquivos de
configuracao.

Uma forma de voce pegar os arquivos abertos no momento é com lsof, ele lista
todos os arquivos abertos.


O que voce pode fazer é executa-lo e depois executar o mysql, quando der
esse erro o arquivo que ele esta referenciando provavelmente sera mostrado.


Abraços.

2012/10/23 Caio Ferreira <abreuferr@gmail.com>
Lista

Por acaso alguém na lista já construiu uma estrutura master<>master de
replicação de dados no MySQL? Estou seguindo um tutorial do
HowtoForge[1] e o primeiro erro que esta aparecendo é o seguinte.

- mensagem de erro do servidor db1 (192.168.0.3)
$ sudo cat /var/log/syslog

Oct 23 16:34:51 db1 mysqld: 121023 16:34:51 [ERROR] Slave I/O: Fatal
error: The slave I/O thread stops because master and slave have equal
MySQL server ids; these ids must be different for replication to work
(or the --replicate-same-server-id option must be used on slave but
this does not always make sense; please check the manual before using
it). Error_code: 1593

O problema é que o parâmetro no arquivo /etc/mysql/my.cnf do servidor
db1 esta assim "server-id = 1" e no db2 esta "server-id = 2".
Resumindo, os servers ids estão diferentes. Alguém por acaso teria
alguma ideia do que eu possa esta fazendo de errado?


1-http://www.howtoforge.com/mysql5_master_master_replication_debian_etch

--
 .''`.   Caio Abreu Ferreira



Reply to: