Назад | Перейти на главную страницу

Ошибка MySQL 2003 через туннель ssh при репликации, а не при использовании клиента

Я пытаюсь настроить репликацию на сервере MySQL через туннель SSH. Я настроил переадресацию порта на ведомом устройстве с порта 7777 на локальном хосте на порт 3306 на главном устройстве, и я могу подключиться к своей учетной записи репликации, используя

mysql -h 127.0.0.1 -P 7777 -u replicate -p 

Однако, когда я устанавливаю главную конфигурацию на подчиненном устройстве (с использованием хоста 127.0.0.1, репликации пользователя, правильного пароля [дважды проверил его] и порта 7777), у него возникает ошибка подключения к мастеру с кодом 2003, который кажется быть связанным с проблемами входа в систему. Я проверил разрешения, и "replicate "@'127.0.0.1" имеет подчиненное устройство репликации на *. *. Почему я могу подключиться к клиенту, но репликация не работает.

РЕДАКТИРОВАТЬ:

Главный сервер работает под управлением MySQL 5.1.66 на Ubuntu 10.04; ведомое устройство работает под управлением MySQL 5.5.28 на Fedora 16.

mysql --ssl --help

приводит к:

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- -----------------------------
auto-rehash                       TRUE
character-sets-dir                (No default value)
column-type-info                  FALSE
comments                          FALSE
compress                          FALSE
debug-check                       FALSE
debug-info                        FALSE
database                          (No default value)
default-character-set             latin1
delimiter                         ;
vertical                          FALSE
force                             FALSE
named-commands                    FALSE
ignore-spaces                     FALSE
local-infile                      FALSE
no-beep                           FALSE
host                              (No default value)
html                              FALSE
xml                               FALSE
line-numbers                      TRUE
unbuffered                        FALSE
column-names                      TRUE
sigint-ignore                     FALSE
port                              3306
prompt                            mysql>
quick                             FALSE
raw                               FALSE
reconnect                         TRUE
socket                            /var/run/mysqld/mysqld.sock
ssl                               TRUE
ssl-ca                            (No default value)
ssl-capath                        (No default value)
ssl-cert                          (No default value)
ssl-cipher                        (No default value)
ssl-key                           (No default value)
ssl-verify-server-cert            FALSE
table                             FALSE
user                              (No default value)
safe-updates                      FALSE
i-am-a-dummy                      FALSE
connect_timeout                   0
max_allowed_packet                16777216
net_buffer_length                 16384
select_limit                      1000
max_join_size                     1000000
secure-auth                       FALSE
show-warnings                     FALSE

Статус раба:

mysql> show slave status\G
--------------
show slave status
--------------

*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 127.0.0.1
                  Master_User: replicate
                  Master_Port: 7777
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 397
               Relay_Log_File: slave-relay-bin.000004
                Relay_Log_Pos: 107
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Connecting
            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: 107
              Relay_Log_Space: 107
              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
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 2003
                Last_IO_Error: error connecting to master 'replicate@127.0.0.1:7777' - retry-time: 60  retries: 86400
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 0
1 row in set (0.00 sec)

РЕДАКТИРОВАТЬ:

SELinux включен на сервере и находится в принудительном режиме.

Скорее всего, ваше соединение mysqld с портом 7777 заблокировано selinux. Чтобы разрешить это, сделайте следующее

semanage port -a -t mysqld_port_t -p tcp 7777

Чтобы проверить, добавлен ли он в разрешенный порт mysqld

semanage port -l | grep mysqld_port_t