复制时通过 ssh 隧道出现 MySQL 错误 2003,而不是使用客户端时出现

复制时通过 ssh 隧道出现 MySQL 错误 2003,而不是使用客户端时出现

我正在尝试通过 SSH 隧道在 MySQL 服务器上设置复制。我在从服务器上设置了端口转发,从 localhost 的端口 7777 到主服务器上的端口 3306,我可以使用以下命令连接到我的复制帐户

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

但是,当我在从服务器上设置主服务器配置时(使用主机 127.0.0.1、用户复制、正确的密码 [仔细检查] 和端口 7777),它在连接到主服务器时出现错误,代码为 2003,这似乎与登录问题有关。我检查了权限,并且 'replicate'@'127.0.0.1' 在 *.* 上有复制从服务器。为什么我可以连接到客户端,但复制失败了。

编辑:

主服务器在 Ubuntu 10.04 上运行 MySQL 5.1.66;从服务器在 Fedora 16 上运行 MySQL 5.5.28。

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 '[email protected]: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 在服务器上已启用,并且处于强制模式。

答案1

很可能您的 mysqld 与 7777 端口的连接已被 selinux 阻止。要允许这种情况,请执行以下操作

semanage port -a -t mysqld_port_t -p tcp 7777

检查是否已添加到 mysqld 允许端口

semanage port -l | grep mysqld_port_t

相关内容