Netzwerkverbindung Gastsystem <-> MySQL-Server auf Hostsystem?

raa1

Newbie
Registriert
Feb. 2015
Beiträge
3
Hi,

ich habe Win2k auf einer VM (Oracle VirtualBox) laufen, Hostsystem Linux (Wheezy).

Die Netzwerkverbindungen funktionieren (das Gastsystem kann auf die angelegten "Gemeinsamen Ordner" wie auf Laufwerke zugreifen), nur Gastprogramme nicht auf den auf dem Hostsystem laufenden MySQL-Server. Tipps aus diversen Webseiten / Foren folgend, habe ich da die /etc/mysql/my.cnf um den Eintrag "bind-address = 192.168.0.10" ergänzt:

Code:
[mysqld]
#
# * Basic Settings
#
user		= mysql
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
port		= 3306
basedir		= /usr
datadir		= /var/lib/mysql
tmpdir		= /tmp
lc-messages-dir	= /usr/share/mysql

bind-address = 192.168.0.10

Und in der Ini-Datei des Windows-Programms (Parameter für den Datenbankzugriff) den Defaultwert für "HostName" ("localhost") durch diese Adresse ersetzt:

Code:
[DB]
Protocol=mysql-5
HostName=192.168.0.10
Port=3306
Database=elela
User=elelauser
Password=elelapw

Ganz so einfach ist es nicht - so kommt keine Verbindung zustande. (Auf dem Hostsystem gibt's keinerlei Probleme mit dem Zugriff auf den MySQL-Server als "localhost" an Port 3306, die Datenbank existiert, der DB-User mit den nötigen Rechten auch.)

Bitte um gezielte Fehlersuchhinweise. Danke im voraus.
 
versuche mit telnet auf den Port 3306 des Servers vom Client aus zuzugreifen. Was passiert?
 
HominiLupus schrieb:
versuche mit telnet auf den Port 3306 des Servers vom Client aus zuzugreifen. Was passiert?
Nichts. ;)

telnet.png
 
Hier meine "/etc/network/interfaces":

Code:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface ### eth0 ###
# Hardware (Adresse "bc:5f:f4:e2:a8:b4"): /etc/udev/rules.d/70-persistent-net.rules

auto eth0
# Interface (Device) eth0 wird beim Systemstart konfiguriert. 
iface eth0 inet static 
  
    address 192.168.2.1
      # Hostadresse, /etc/hosts, "Melina"

    gateway 192.168.2.254
        # Default-Gateway (hier der DSL-Router)

        netmask 255.255.255.0 
    
# DNS-Server: /etc/resolv.conf "nameserver 192.168.2.254" (DSL-Router) - wenn er beim Start dranhängt
Die "/etc/hosts":

Code:
127.0.0.1    localhost
192.168.2.1 Melina
192.168.2.2 Winlina

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Adaptertyp in den VirtualBox-Netzwerkeinstellungen "Bridged":

vm-net.png


Die Netzwerkverbindung unter Windows auf der VM ist jetzt so konfiguriert:

conn1-gui.png


Also ohne Gateway, d.h ohne Zugriffsmöglichkeit auf den DSL-Router (mit Win2k will ich nicht ins Internet), ;) und der DNS-Server ist von VirtualBox vorgegeben. Ergebnis erst mal:

ping-guest1.png


Und von der anderen Seite:

Code:
 ifconfig
eth0      Link encap:Ethernet  Hardware Adresse bc:5f:f4:e2:a8:b4  
          inet Adresse:192.168.2.1  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: fe80::be5f:f4ff:fee2:a8b4/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:10128 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7443 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:7004156 (6.6 MiB)  TX bytes:1164725 (1.1 MiB)

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:440 (440.0 B)  TX bytes:440 (440.0 B)

root@Melina:/home/hk# ping 192.168.2.2
PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
64 bytes from 192.168.2.2: icmp_req=24 ttl=128 time=3.88 ms
64 bytes from 192.168.2.2: icmp_req=25 ttl=128 time=0.546 ms
64 bytes from 192.168.2.2: icmp_req=26 ttl=128 time=0.454 ms
64 bytes from 192.168.2.2: icmp_req=27 ttl=128 time=0.700 ms
[...]
So weit, so gut - ich hab' also jetzt wie gewünscht drei Hosts, die so verbunden sind / Verbindung aufnehmen können:

"Melina" 192.168.2.1 --- 192.168.2.254 (DSL-Router) 178.10.180.118 --- (Internet)
|
"Winlina" (VM) 192.168.2.2
Bloß noch keiner mit dem MySQL-Server - trotz Eintrag in der "/etc/mysql/my.cnf":

Code:
bind-address = 0.0.0.0
"netstat -tulpen | fgrep 3306" liefert:

Code:
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      114        240064      6284/mysqld
Das besagt doch eigentlich, dass der MySQL-Server auf allen existierenden IP-Adressen auf Verbindungen warten müsste? Tut er aber nicht. Bin also mal nach dieser Anleitung vorgegangen:

http://www.sysadminslife.com/linux/quicktipp-mysql-externer-zugriff-erlauben-bind-address/

http://www.sysadminslife.com/linux/...iptables-persistent-debian-ubuntu-linux-mint/

So sieht meine "/etc/iptables/rules.v4" aus:

Code:
# Generated by iptables-save v1.4.14 on Sun Feb 22 21:22:48 2015
*filter
:INPUT ACCEPT [1133:430152]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [828:96059]
-A INPUT -i lo -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -s 192.168.2.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -s 192.168.2.2/32 -p tcp -m tcp --dport 3306 -j ACCEPT
COMMIT
# Completed on Sun Feb 22 21:22:48 2015
Und "iptables -L" liefert:

Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
ACCEPT     tcp  --  Melina               anywhere             tcp dpt:mysql
ACCEPT     tcp  --  Winlina              anywhere             tcp dpt:mysql

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Trotz alledem ist der MySQL-Server nach wie vor nur über "localhost" ansprechbar, jeder andere Versuch eines Verbindungsaufbaus schlägt fehl - Beispiel "telnet 192.168.2.1 3306":

Code:
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.
?Host 'Melina' is not allowed to connect to this MySQL serverConnection closed by foreign host.
Wer weiß da weiter? :?: :?: :?:
Ergänzung ()

raa1 schrieb:
Wer weiß da weiter? :?: :?: :?:

Der hier - endlich aller Rätsel Lösung! ;)

MID: <mcfgks$brf$1@news.albasani.net> (Newsgroup "at.linux" - es lebe das Usenet)! :wink:

Christian Schweingruber schrieb:
Das ist kein Netzwerk sondern ein MySQL-Permission-Problem!
Es gibt keinen user, der von Melina aus connecten darf!
siehe zB:

http://stackoverflow.com/questions/...s-not-allowed-to-connect-to-this-mysql-server

viele Grüsse
Chrigu
Ich habe eben bislang alle DB-User mit "@localhost" angelegt ... :wink:

Tschuldigung, Moderation: Neue Beiträge vom selben User als Ergänzung dranzuhängen, ist auch ziemlich sinnfrei. Da kriegt ja keiner von denen, die das Thema abonniert haben, eine Benachrichtigung.
 
Zuletzt bearbeitet:
Zurück
Oben