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

我试图通过SSH隧道在MySQL服务器上设置复制。 我已经build立一个端口转发从本地端口7777到主端口3306从端口,我可以连接到我的复制帐户使用

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

但是,当我在从属设备(使用主机127.0.0.1,用户复制,正确的密码[双重检查它]和端口7777)上设置主configuration时,它有连接到代码为2003的主的错误与login问题相关联。 我检查了权限,'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在服务器上启用,并处于强制模式。

很可能你的mysqld连接到7777端口被selinux阻塞。 为了做到这一点,请遵循

 semanage port -a -t mysqld_port_t -p tcp 7777 

检查它是否被添加到mysqld允许的端口

 semanage port -l | grep mysqld_port_t