Replicar entre o mysql 5.0.xx community e enterprise edition sobre o ssh

1

Estou tentando configurar uma replicação do mysql em um túnel SSH. A coisa estranha sobre essa configuração é que eu tenho um mestre com o mysql 5.0.60sp1-enterprise-gpl-log e um escravo com o mysql 5.0.67-community-log. Poderia ser assim que não é possível replicar entre a edição da comunidade e da empresa?

Como você pode ver no meu log abaixo, é possível fazer o login no servidor remoto com o cliente mysql. Mas a replicação obtém "Não é possível conectar ao servidor MySQL em '127.0.0.1' (13)"

Algum arquivo de log esqueci de procurar, para obter mais informações?

[root@mysql1-av ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 73
Server version: 5.0.67-community-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

A versão do slave mysql

[root@mysql1-av ~]# autossh -f -M 20001 -L 3307:10.200.200.200:3306 [email protected] -N

[root@mysql1-av ~]# mysql -h127.0.0.1 --port 3307 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5189
Server version: 5.0.60sp1-enterprise-gpl-log MySQL Enterprise Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> Aborted

Entre no master mysql com o cliente mysql sobre o túnel ssh.

[root@mysql1-av ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 75
Server version: 5.0.67-community-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> change master to master_host='127.0.0.1', MASTER_PORT=3307, master_user='xxxx', master_password='xxxx', master_log_file='bin.000001';
Query OK, 0 rows affected (0.00 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status \G
*************************** 1. row ***************************
             Slave_IO_State: Connecting to master
                Master_Host: 127.0.0.1
                Master_User: replNSG
                Master_Port: 3307
              Connect_Retry: 60
            Master_Log_File: bin.000001
        Read_Master_Log_Pos: 4
             Relay_Log_File: relay.000001
              Relay_Log_Pos: 98
      Relay_Master_Log_File: bin.000001
           Slave_IO_Running: No
          Slave_SQL_Running: Yes
            Replicate_Do_DB: 
        Replicate_Ignore_DB: 
         Replicate_Do_Table: 
     Replicate_Ignore_Table: 
    Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
                 Last_Errno: 0
                 Last_Error: 
               Skip_Counter: 0
        Exec_Master_Log_Pos: 4
            Relay_Log_Space: 98
            Until_Condition: None
             Until_Log_File: 
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File: 
         Master_SSL_CA_Path: 
            Master_SSL_Cert: 
          Master_SSL_Cipher: 
             Master_SSL_Key: 
      Seconds_Behind_Master: NULL
1 row in set (0.00 sec)

Inicie a replicação, mas ela é interrompida no IO.

[root@mysql1-av ~]# tail /var/log/mysqld.log
120921 22:17:59 [Note] Slave I/O thread killed while connecting to master
120921 22:17:59 [Note] Slave I/O thread exiting, read up to log 'bin.000001', position 4
120921 22:17:59 [Note] Error reading relay log event: slave SQL thread was killed
120921 22:29:36 [Note] Slave SQL thread initialized, starting replication in log 'bin.000001' at position 4, relay log '/var/lib/mysql/relay.000001' position: 4
120921 22:29:36 [ERROR] Slave I/O thread: error connecting to master '[email protected]:3307': Error: 'Can't connect to MySQL server on '127.0.0.1' (13)'  errno: 2003  retry-time: 60  retries: 86400

Porque não pode se conectar ao servidor mestre.

    
por Arlukin 21.09.2012 / 22:44

3 respostas

0

Agora resolvi o problema. É um bug no comando de replicação do mysql "change master" e no argumento "MASTER_PORT = 3307". Não se importa com esse argumento e sempre usa a porta 3306.

When using a MySQL 5.0.18 slave, if the master is listening on any port other than 3306, replication fails even when master_port is set to the correct listening port on the master.

link

    
por 26.09.2012 / 14:45
1

O MySQL - até mesmo 5.0 - possui suporte nativo para replicação envolta em SSL. A menos que exista um motivo convincente para usar túneis ssh, recomendo usá-lo.

link

    
por 21.09.2012 / 23:29
0

Aqui estão algumas respostas.

link

    
por 21.09.2012 / 22:48