Por que minha conexão remota do MySQL falha (VLAN)?

-1

ubuntu-community!

Novamente, tenho um problema com meu amigo especial MySQL: D
Eu tenho dois servidores - um servidor de banco de dados e um servidor web - que estão conectados via VLAN.

Agora eu quero que o servidor web tenha acesso remoto ao MySQL do servidor de banco de dados. Então criei o usuário usuário em mysql.user .
O host do usuário é o xxx.yyy.zzz.9 que é o endereço IP interno do servidor web.
xxx.yyy.zzz.0 é a rede. Eu também criei usuário com o Host % .
Desde que eu use o MySQL no servidor de banco de dados, como usuário , tudo funciona bem. Mas tentando logar como usuário de xxx.yyy.zzz.9 usando

mysql -h xxx.yyy.zzz.8 -u user -p

(onde xxx.yyy.zzz.8 é o IP interno do servidor de banco de dados), recebo

ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.yyy.zzz.8' (110)

Então eu tentei ativar Bind-Address no arquivo my.cnf. Bem, se eu usar xxx.yyy.zzz.8, nada muda. Mas se eu tentar xxx.yyy.zzz.9 e tentar reiniciar o MySQL, eu obtenho

    mysql stop/waiting
    start: Job failed to start

Eu verifiquei os arquivos de log e encontrei - nada. O MySQL do servidor de banco de dados nem se registra, que o servidor web tenta se conectar remotamente.

Minha idéia é que talvez eu não tenha configurado a VLAN propriamente dita, mesmo que eu tenha perguntado a alguém que realmente conhece essas coisas e ele me disse, eu fiz tudo certo. O que eu escrevi em /etc/networking/interfaces é:

    #The VLAN
    auto eth1
    iface eth1 inet static
    address xxx.yyy.zzz..8
    netmask 255.255.255.0
    network xxx.yyy.zzz.0
    broadcast xxx.yyy.zzz.255
    mtu 1500

ifconfig retorna

   eth1      Link encap:Ethernet  HWaddr xxxxxxxxxxxxxx  
             inet addr:xxx.yyy.zzz.8  Bcast:xxx.yyy.zzz.255  Mask:255.255.255.0
             inet6 addr: xxxxxxxxxxxxxxx/64 Scope:Link
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:241146 errors:0 dropped:0 overruns:0 frame:0
             TX packets:9765 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000 
             RX bytes:17825995 (17.8 MB)  TX bytes:566602 (566.6 KB)
             Memory:fb900000-fb920000 

para a eth1, o que é, o que configurei. (Isto é para o servidor de banco de dados, o servidor web parece similar).

ethtool eth1 retorna:

    Settings for eth1:

        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000003 (3)
                       drv probe
        Link detected: yes

(Isto é para o servidor de banco de dados, o servidor web parece similar).

Na verdade, acho que está tudo certo, mas ainda não funciona. Existe alguém com uma ideia?

EDITAR: Eu comentei ou Bind-Address em my.cnf depois que não funcionou.

    
por Johannes Nielsen 13.12.2012 / 17:10

2 respostas

1

Eu entendi!
O serviço psa-firewall , que é ativado e configurado pelo Plesk, estava em execução. Ele recusou todos os pedidos de entrada do MySQL.
Eu o reconfigurei através do Plesk, permitindo que as solicitações do MySQL fossem atendidas. Eu não sei, se eu pudesse também ter feito no shell, mas desativá-lo definitivamente ajudou também! Mas eu acho que isso pode ser perigoso. Obrigado Oliver por tentar me ajudar!

Veja todos vocês então!

    
por Johannes Nielsen 14.12.2012 / 16:56
0

O Mysql está escutando por padrão apenas na interface de loopback. Então, mesmo com um usuário com privilégio certo, você não poderá acessar remotamente em seu servidor mysql. Além disso, a opção bind-address não é dedicada para dar acesso a algum host, mas para especificar a interface para escutar.

Então, primeiro verifique se o seu mysql está escutando na interface de loopback

netstat -tnl | grep 3306

Você verá algo assim

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

Se estiver certo, você precisa alterar o arquivo de configuração do mysql

sudo nano /etc/mysql/my.cnf

Em seguida, pesquise a linha:

bind-address = 127.0.0.1

Em seguida, substitua 127.0.0.1 para 0.0.0.0 . Você obterá a linha:

bind-address = 0.0.0.0

Reinicie o MySQL para entrar em vigor

/etc/init.d/mysql restart

Finalize a verificação de que o Mysql está escutando em todas as interfaces

netstat -tnl | grep 3306

Você deve ver:

tcp        0      0 0.0.0.0:3306          0.0.0.0:*               LISTEN
    
por olivierb2 13.12.2012 / 17:22