Почему мое удаленное соединение MySQL терпит неудачу (VLAN)?

ubuntu-community!

Опять у меня проблема с моим специальным другом MySQL: D
У меня есть два сервера - сервер базы данных и веб-сервер - которые подключены через VLAN.

Теперь я хочу, чтобы веб-сервер имел удаленный доступ к MySQL сервера базы данных. Поэтому я создал пользователя user в mysql.user .
Хост пользователя - это xxx.yyy.zzz.9, который является внутренним IP-адресом веб-сервера.
xxx.yyy.zzz.0 - это сеть. Я также создал пользователя с помощью Host % .
Пока я использую MySQL на сервере базы данных, входящем в систему как пользователь , все работает хорошо. Но пытаюсь войти как пользователь из xxx.yyy.zzz.9, используя

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

(где xxx.yyy.zzz.8 - база данных внутренний IP-адрес сервера), я получаю

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

Поэтому я попытался активировать Bind-Address в файле my.cnf. Хорошо, если я использую xxx.yyy.zzz.8, ничего не изменится. Но если я попробую xxx.yyy.zzz.9 и попробую перезапустить MySQL, я получу

    mysql stop/waiting
    start: Job failed to start

Я проверил файлы журнала и не нашел - ничего. MySQL сервера базы данных даже не регистрируется, что веб-сервер пытается подключиться удаленно.

Моя идея заключается в том, что, возможно, я не настраивал свойства VLAN, хотя я спросил кого-то, кто на самом деле знает такие вещи, и он сказал мне, что я все сделал правильно. То, что я написал в /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 возвращает

   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 

для eth1, что я настроил. (Это для сервера базы данных, веб-сервер выглядит аналогично).

ethtool eth1 возвращает:

    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

(Это для сервера базы данных, веб-сервер выглядит аналогично).

1135 На самом деле, я думаю, все правильно, но все равно не работает. Есть кто-то с идеей?

РЕДАКТИРОВАТЬ: Я прокомментировал ou Bind-Address в my.cnf после того, как он не работал.

-1
задан 13 December 2012 в 20:51

2 ответа

Я понял!
Служба psa-firewall, которая активируется и настраивается Plesk, работает. Он отклонял все входящие MySQL-запросы.
Я перенастроил его через Plesk, позволяя пропустить MySQL-запросы. Я не знаю, смог бы я сделать это и в оболочке, но деактивация тоже помогла! Тем не менее, я думаю, это может быть опасно.
Спасибо, Оливер, за попытку помочь мне!

Тогда увидимся!

0
ответ дан 13 December 2012 в 20:51

Mysql слушает по умолчанию только на интерфейсе обратной связи. Таким образом, даже имея пользователя с соответствующими правами, вы не сможете получить удаленный доступ на своем сервере MySQL. Кроме того, опция bind-address не предназначена для предоставления доступа к некоторому хосту, а для указания интерфейса для прослушивания.

Итак, сначала проверьте, слушает ли ваш mysql интерфейс обратной связи

netstat -tnl | grep 3306

. Вы увидите что-то подобное

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

Если все правильно, вам нужно изменить файл конфигурации mysql

sudo nano /etc/mysql/my.cnf

Затем найдите строку:

bind-address = 127.0.0.1

Затем замените 127.0.0.1 на 0.0.0.0. Вы получите строку:

bind-address = 0.0.0.0

Перезапустите Mysql для вступления в силу

/etc/init.d/mysql restart

Завершите проверку того, что Mysql прослушивает все интерфейсы

netstat -tnl | grep 3306

Вы должны увидеть :

tcp        0      0 0.0.0.0:3306          0.0.0.0:*               LISTEN
0
ответ дан 13 December 2012 в 20:51

Другие вопросы по тегам:

Похожие вопросы: