Webhosting, Domains und VServer von Host Europe

Forum: Linux - Contra Monopole 87.150 Beiträge

Special-J

Webserver an MySQL-Server binden

Special-J / 17 Antworten / Baumansicht
Hallo liebe Linux-Freunde,
ich weiß nicht, ob ich im richtigen Thread bin, aber hauptsächlich geht es bei mir um Linux Debian.

Also folgender Ist-Zustand:
VM1: Debian6 mit Apache2-Webserver
VM2: Debian6 mit MySQL-Server + Fileserver (NFS)

Soll-Zustand:
Der Webserver (VM1) sollte mithilfe von PHPmyAdmin auf dem SQL-Server (VM2) zugreifen können und die Datenbanken von dort aus verwalten, damit es keinen direkten Zugriff auf den MySQL-/Fileserver gibt.

Eigenee Versuche:
my.conf auf der VM2 (erfolglos) konfiguriert. PHPmyAdmin per config.inc.php (erfolglos) konfiguriert. My.conf auf dem MySQL-Client der VM1 (erfolglos) konfiguriert. Auf dem MySQL-Server in der DB "mysql" einen neuen ControlUser "pma" mit dem Host "VM1-IP" (erfolglos) erstellt.

Frage:
Welche Spezifischen Einstellungen reichen aus, um das Ganze endlich zu beenden?
benachrichtigen
Optionen
KarstenW Special-J

„Webserver an MySQL-Server binden“

Mit Apache und MySQL Datenbanken kenne ich mich nicht aus. Ich denke das wird ein Netzwerkproblem sein. Welche Virtuellen Maschinen nutzt du, VMware oder eine andere Software ?

Ich würde selbst erst einmal in das Debian Wiki schauen und die Konfiguration lernen:

http://wiki.debian.org/LaMp

http://wiki.debian.org/NFS

http://wiki.debian.org/Apache

UNIX - LIVE FREE OR DIE http://www.opengroup.org/products/publications/graphics/n900cov.jpg
benachrichtigen
Optionen
Special-J KarstenW

„Mit Apache und MySQL Datenbanken kenne ich ...“

Ich nutze einen Xen-Server bei der Arbeit und mit dem Xen-Center steuere ich sozusagen die beiden VMs.
Wikis und Ebooks habe ich schon sämtliche durchgenommen. So konkret stehts nirgens.

benachrichtigen
Optionen
mi~we Special-J

„Webserver an MySQL-Server binden“

Kannst du denn überhaupt mit dem MySQL-Client (auf VM1) eine Verbindung zum MySQL-Server (auf VM2) aufbauen?
Welche Fehlermeldungen bekommst du denn?
Ist bei Debian evtl. SELinux aktiviert?
http://www.ehow.com/how_2090983_connect-remote-database-under-selinux.html

"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
benachrichtigen
Optionen
Special-J mi~we

„Kannst du denn überhaupt mit dem ...“

Nein, ich habe keinen direkten Zugriff auf den MySQL-Server. Der Client kann diesen "physikalisch" nicht finden, obwohl per NFS die Verzeichnisse mountbar sind.
Die Fehlermeldung weist auf den MySQL-Sockel hin:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket 'VM2:/var/run/mysqld/mysqld.sock' (2)
Und nein, ich habe SELinux nicht bei mir installiert, werde aber versuchen anhand der Einleitung es zu installieren.

Danke erstemal :)

benachrichtigen
Optionen
KarstenW Special-J

„Nein, ich habe keinen direkten Zugriff auf ...“

Socket Fehlermeldung ist ein Netzwerkproblem. SELinux kannst du vergessen. SELinux soll die Sicherheit bei Linux erhöhen.
SELinux ist umstritten.

Ich kann dir nur einen Link zu Xen unter Debian geben:

http://wiki.debian.org/Xen

PS: Ich würde dir als Virtuelle Maschine VMware Workstation oder VirtualBox empfehlen. Mit Vmware Workstation habe ich unter Debian immer sehr gute Erfahrungen gemacht.


UNIX - LIVE FREE OR DIE http://www.opengroup.org/products/publications/graphics/n900cov.jpg
benachrichtigen
Optionen
Special-J KarstenW

„Socket Fehlermeldung ist ein ...“

Da habe ich leider keine Wahl, da unser Unternehmen nur solche VM-Systeme verwendet.
Soll auch angeblich performanter und einfacher sein, als die Konkurrenz.
Aber trotzdem danke für den Link ;)

benachrichtigen
Optionen
KarstenW Special-J

„Da habe ich leider keine Wahl, da unser ...“

Ich kenne mich mit XEN nicht gut aus, aber ich würde eventuell auf den Linuxkernel als Fehlerquelle tippen.

http://wiki.debian.org/Xen#Note_on_kernel_version_compatibility

UNIX - LIVE FREE OR DIE http://www.opengroup.org/products/publications/graphics/n900cov.jpg
benachrichtigen
Optionen
mi~we Special-J

„Nein, ich habe keinen direkten Zugriff auf ...“

werde aber versuchen anhand der Einleitung es zu installieren.
Nein, so war das nicht gemeint!! SELinux wäre eine mögliche Fehlerquelle gewesen, weil das nämlich standardmäßig dem Apache verbietet, sich remote mit einem SQL-Server zu verbinden. Also NICHT installieren.
"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
benachrichtigen
Optionen
Special-J mi~we

„werde aber versuchen anhand der Einleitung ...“

Nagut, dann versuche ich eben an der Netzwerkverbindung der VMs zu arbeiten :P

benachrichtigen
Optionen
mi~we Special-J

„Nagut, dann versuche ich eben an der ...“

Ist bei dem MySQL-Server überhaupt der 'Remote Access' erlaubt:
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
benachrichtigen
Optionen
Special-J mi~we

„Ist bei dem MySQL-Server überhaupt der ...“

Super, danke dir vielmals!

Die folgenden Einstellungen haben zum Erfolg gebracht:

bind-address = IP-Adresse von VM2
# diese Zeile sollte einkommentiert sein:
# skip-external-locking

Danke euch allen - jetzt kann ich endlich mit meinem Projekt fortfahren ;)

VG

benachrichtigen
Optionen
mi~we Special-J

„Super, danke dir vielmals! Die folgenden ...“

Na prima, dann wünsche ich noch viel Spass mit deinem Projekt.
Kannst du noch deine Frage als beantwortet markieren?
(in deinem ersten Posting hier, 'Optionen zum Beitrag', dort 'Als beantwortet markieren' anklicken)

"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
benachrichtigen
Optionen
xafford Special-J

„Nein, ich habe keinen direkten Zugriff auf ...“

Hmmm... sorry falls mir in dem Thread was entgangen sein sollte, aber wenn ich es richtig verstanden habe, dann läuft auf VM2 der MySQL-Server und Du versuchst von VM1 per Socket /var/run/mysqld/mysqld.sock zuzugreifen? Das kann nicht gehen, den Socket wird es nicht geben.

Du musst den Zugriff über das Netzwerk (TCP/IP) aufbauen, der lokale Socket auf VM2 steht auf VM1 nicht zur Verfügung.

*EDITORTEST*

Die neue Definition des Rechtsstaates: Der Staat hat immer Recht!.com|markt
benachrichtigen
Optionen
xafford

Nachtrag zu: „Webserver an MySQL-Server binden“

Okay, mir war was entgangen... die treffende Antwort von mic :)

~ZITATTEST~

Die neue Definition des Rechtsstaates: Der Staat hat immer Recht!.com|markt
benachrichtigen
Optionen
the_mic Special-J

„Webserver an MySQL-Server binden“

auf VM1: stelle sicher, dass VM2 per Netzwerk erreichbar ist (z.B. Ping auf IP Adresse)

auf VM2: passe /etc/mysql/my.cnf so an, dass MySQL nicht nur lokal sondern auch über Netzwerk erreichbar ist. Ändere dazu die Konfigurationsdirektive bind-address von 127.0.0.1 zu 0.0.0.0 und starte MySQL neu.
Sofern du vollen administrativen Zugriff von VM1 brauchst, meldest du dich per mysql -p an MySQL an und erstellst einen root-Benutzer für VM1:
grant all privileges on *.* to 'root'@'ip.von.vm.1' identified by 'geheimespasswort' with grant option;
Über die Risiken eines remote-Admin-Zugangs muss ich hoffentlich nicht extra aufklären?

auf VM1: installiere phpmyadmin und konfiguriere einen Zugriff auf VM2. Falls du phpmyadmin über die Paketverwaltung instaliert hast, kannst du das soweit ich weiss über dpkg-reconfigure phpmyadmin machen.

cat /dev/brain > /dev/null
benachrichtigen
Optionen
Special-J the_mic

„auf VM1: stelle sicher, dass VM2 per ...“

Danke dir, "the_mic".
Ich hab den Wurm endlich beseitigt.
Und was die Sicherheit dieser Geschichte angeht, habe ich auch vorgesorgt, indem ich einfach die Adresse zum PHPmyAdmin nur für bestimmte Host-Adressen im LAN den Zugriff genehmigt habe,

Oder sollte ich deiner Meinung nach, was zusätzlich noch tun?

benachrichtigen
Optionen
the_mic Special-J

„Danke dir, "the_mic". Ich hab den Wurm ...“

phpmyadmin sollte grundsätzlich immer extra gesichert werden, da hierfür regelmässig Exploits auftauchen und Bots aktiv nach Installationen suchen. Das war von dem her eine gute Idee deinerseits.

Grundsätzlich kann natürlich jeder mit Zugriff auf VM1 versuchen sich root-Rechte im MySQL auf VM2 zu verschaffen. Wenn das Passwort lange und sicher ist, sinkt deren Erfolgswahrscheinlichkeit gegen null. Und auch bei lokalem MySQL mit nur lokalem Admin hast du natürlich dasselbe Risiko. Von dem her sollte das so eigentlich hinhauen.

cat /dev/brain > /dev/null
benachrichtigen
nach oben
0.067697