Eu já respondi a esta pergunta, tente esta etapa, não use localhost use 127.0.0.1 ip address instead Conectando-se ao MYSQL através do túnel SSH
Não consigo descobrir por que não consigo usar o túnel ssh para conectar-me ao meu servidor MySQL remoto.
Eu faço túnel ssh com
[hobbes3@hobbes3] ~ $ ssh linode -L 3307:localhost:3306
Então, em outro terminal, eu tento
[hobbes3@hobbes3] ~ $ mysql -h localhost -P 3307 -u root --protocol=tcp -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2
No servidor, isso mostra:
root@li534-120 ~ # channel 4: open failed: connect failed: Connection refused
Aqui está o meu my.cnf
no servidor:
[mysqld]
# Settings user and group are ignored when systemd is used (fedora >= 15).
# If you need to run mysqld under different user or group,
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
user=mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Semisynchronous Replication
# http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html
# uncomment next line on MASTER
;plugin-load=rpl_semi_sync_master=semisync_master.so
# uncomment next line on SLAVE
;plugin-load=rpl_semi_sync_slave=semisync_slave.so
# Others options for Semisynchronous Replication
;rpl_semi_sync_master_enabled=1
;rpl_semi_sync_master_timeout=10
;rpl_semi_sync_slave_enabled=1
# http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
;performance_schema
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqld]
port = 3306
socket=/var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 64M
max_allowed_packet = 128M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache = 8
max_connections = 25
query_cache_size = 16M
table_open_cache = 1024
table_definition_cache = 1024
tmp_table_size = 32M
max_heap_table_size = 32M
bind-address = 0.0.0.0
Agora, se isso ajudar, mas aqui está a lista de usuários do MySQL:
mysql> select * from mysql.user;
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string |
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
| localhost | root | *664328D3C5E263F4FB25185681AAE7E92B01B2B0 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | | |
| 127.0.0.1 | root | *664328D3C5E263F4FB25185681AAE7E92B01B2B0 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | | |
| ::1 | root | *664328D3C5E263F4FB25185681AAE7E92B01B2B0 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | | |
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
3 rows in set (0.00 sec)
Eu li sobre como o MySQL trata localhost
vs 127.0.0.1
como conectar via socket ou TCP, respectivamente. Mas estou começando a ficar confuso sobre o que realmente está acontecendo ou se o soquete vs TCP é mesmo o problema.
Agradecemos antecipadamente e estamos abertos a dicas e sugestões!
Mais algumas informações:
Meu cliente MySQL, executando o OS X 10.8.4, é
mysql Ver 14.14 Distrib 5.6.10, for osx10.8 (x86_64) using EditLine wrapper
Meu servidor MySQL, rodando no CentOS 6.4 de 32 bits, é
mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 1.1.8 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.28 |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | i686 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
7 rows in set (0.00 sec)
EDITAR:
Eu refiz o túnel ssh com -vvv
, desabilitei iptables
, e agora quando tento mysql -h 127.0.0.1 -P 3307 -u root --protocol=tcp -p
, recebo os seguintes logs de depuração no servidor linode:
debug1: Connection to port 3307 forwarding to localhost port 3306 requested.
debug2: fd 11 setting TCP_NODELAY
debug3: fd 11 is O_NONBLOCK
debug3: fd 11 is O_NONBLOCK
debug1: channel 4: new [direct-tcpip]
channel 4: open failed: connect failed: Connection refused
debug2: channel 4: zombie
debug2: channel 4: garbage collecting
debug1: channel 4: free: direct-tcpip: listening port 3307 for localhost port 3306, connect from 127.0.0.1 port 49995, nchannels 5
debug3: channel 4: status: The following connections are open:
#3 client-session (t4 r0 i0/0 o0/0 fd 8/9 cc -1)
Eu já respondi a esta pergunta, tente esta etapa, não use localhost use 127.0.0.1 ip address instead Conectando-se ao MYSQL através do túnel SSH
Usar o nome 'localhost' tenta se conectar usando um soquete DOMÍNIO UNIX por padrão, o que só é possível quando o cliente e o servidor estão na mesma máquina porque precisam acessar o soquete local entrada no sistema de arquivos. (Em muitas implementações do UNIX / Linux é a maneira mais rápida de se conectar e é recomendado).
127.0.0.1 tenta se conectar usando a pilha de rede da Internet (AF_INET) e, portanto, adiciona um pouco de sobrecarga, mas parece que no seu caso é necessário para comunicações com outro sistema.
Tente se conectar usando
mysql -h 127.0.0.1 -P 3307 -u root --protocol=tcp -p
Tags mysql ssh-tunnel