Linux 15.036 Themen, 107.107 Beiträge

Webserver an MySQL-Server binden

Special-J / 17 Antworten / Baumansicht Nickles

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?

bei Antwort benachrichtigen
KarstenW Special-J „Webserver an MySQL-Server binden“
Optionen

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

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
Special-J KarstenW „Mit Apache und MySQL Datenbanken kenne ich mich nicht aus. Ich denke das wird...“
Optionen

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.

bei Antwort benachrichtigen
mi~we Special-J „Webserver an MySQL-Server binden“
Optionen

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)
bei Antwort benachrichtigen
Special-J mi~we „Kannst du denn überhaupt mit dem MySQL-Client auf VM1 eine Verbindung zum...“
Optionen

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 :)

bei Antwort benachrichtigen
KarstenW Special-J „Nein, ich habe keinen direkten Zugriff auf den MySQL-Server. Der Client kann...“
Optionen

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.


Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
Special-J KarstenW „Socket Fehlermeldung ist ein Netzwerkproblem. SELinux kannst du vergessen....“
Optionen

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 ;)

bei Antwort benachrichtigen
KarstenW Special-J „Da habe ich leider keine Wahl, da unser Unternehmen nur solche VM-Systeme...“
Optionen

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

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
mi~we Special-J „Nein, ich habe keinen direkten Zugriff auf den MySQL-Server. Der Client kann...“
Optionen
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)
bei Antwort benachrichtigen
Special-J mi~we „ Nein, so war das nicht gemeint!! SELinux wäre eine mögliche Fehlerquelle...“
Optionen

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

bei Antwort benachrichtigen
mi~we Special-J „Nagut, dann versuche ich eben an der Netzwerkverbindung der VMs zu arbeiten :P“
Optionen

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)
bei Antwort benachrichtigen
Special-J mi~we „Ist bei dem MySQL-Server überhaupt der Remote Access erlaubt:...“
Optionen

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

bei Antwort benachrichtigen
mi~we Special-J „Super, danke dir vielmals! Die folgenden Einstellungen haben zum Erfolg...“
Optionen

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)
bei Antwort benachrichtigen
xafford Special-J „Nein, ich habe keinen direkten Zugriff auf den MySQL-Server. Der Client kann...“
Optionen

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*

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
xafford Nachtrag zu: „Webserver an MySQL-Server binden“
Optionen

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

~ZITATTEST~

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
the_mic Special-J „Webserver an MySQL-Server binden“
Optionen

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
bei Antwort benachrichtigen
Special-J the_mic „auf VM1: stelle sicher, dass VM2 per Netzwerk erreichbar ist z.B. Ping auf IP...“
Optionen

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?

bei Antwort benachrichtigen
the_mic Special-J „Danke dir, the_mic . Ich hab den Wurm endlich beseitigt. Und was die Sicherheit...“
Optionen

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
bei Antwort benachrichtigen