Mysql

通過 ssh 在 mysql 5.0.xx 社區版和企業版之間複製

  • September 26, 2012

我正在嘗試通過 SSH 隧道設置 mysql 複製。這個設置的奇怪之處在於我有一個使用 mysql 5.0.60sp1-enterprise-gpl-log 的主伺服器和一個使用 mysql 5.0.67-community-log 的從伺服器。是不是不能在社區版和企業版之間複製?

正如您在下面的日誌中看到的,可以使用 mysql 客戶端登錄遠端伺服器。但是複制得到“無法連接到 ‘127.0.0.1’ (13) 上的 MySQL 伺服器”

是否有我忘記查看的任何日誌文件以獲取更多資訊?

[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.

從機mysql的版本

[root@mysql1-av ~]# autossh -f -M 20001 -L 3307:10.200.200.200:3306 dali@www.ourbounceserver.com -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

使用 mysql 客戶端通過 ssh 隧道登錄到主 mysql。

[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)

開始複製,但它在 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 'xxxx@127.0.0.1:3307': Error: 'Can't connect to MySQL server on '127.0.0.1' (13)'  errno: 2003  retry-time: 60  retries: 86400

因為它無法連接到主伺服器。

MySQL——甚至 5.0——對 SSL-wrapped 複製具有原生支持。除非有令人信服的理由使用 ssh 隧道,否則我建議使用它。

http://dev.mysql.com/doc/refman/5.0/en/replication-solutions-ssl.html

這裡有一些答案。

https://stackoverflow.com/questions/1462419/can-a-mysql-enterprise-master-replicate-to-a-mysql-community-slave

引用自:https://serverfault.com/questions/430770