2 mysqlds parallel

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

2 mysqlds parallel

Postby jwl » 09. June 2006 23:18

Hallo in die Runde,

ich möchte auf meinem Linux-Server zwei mysqlds gleichzeitig laufen lassen. Der eine läuft "live" als Backend für diverse Websites am Standardport 3306 und liest seine Konfiguration aus /etc/my.cnf. Der zweite soll der mysqld von lampp (/opt/lampp/sbin/mysqld) sein.

Ich habe in /opt/lampp/etc/my.cnf die Anweisungen ensprechend angepasst:

Code: Select all
[client]
#password       = your_password
port            = 3333
socket          = /opt/lampp/var/mysql/mysql.sock


Dennoch startet der zweite Server nicht. Als Fehlermeldung erhalte trotz der Anpassung ich im Fehlerprotokoll unter /opt/lampp/var/mysql/ weiterhin die Meldung

Code: Select all
[ERROR] Do you already have another mysqld server running on port: 3306 ?


Wie kriege ich nun den zweiten (LAMPP) mysqld an den Start?
Welche Änderungen/Anpassungen muss ich außerdem vornehmen (php.ini, etc...)?

Jede Art von Hilfe, Tipps, Hinweisen, FAQ, etc. sind willkommen.

TIA,

jwl
User avatar
jwl
 
Posts: 3
Joined: 09. June 2006 22:50
Location: Hamburg

Falsches Setting`?

Postby zschendh » 10. June 2006 12:25

Hallo,
versuch mal

[client]
port=3333
socket=/tmp/mysql.3333.sock # only to differ between original

[mysqld]
port=3333
socket=/tmp/mysql.3333.sock # only to differ between original

Wenn der wegen dem socket meckert, einfach beide "socket" eintraege mal rausnehmen.
Gruß

H.Richard
Lord of Kerry :wink:
zschendh
 
Posts: 9
Joined: 09. June 2006 11:18

Postby deepsurfer » 10. June 2006 14:04

Du müsstest im startscript des XAMPP die Portprüfung auch umändern.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

mysqld x 2

Postby jwl » 10. June 2006 23:08

So, das Problem ist gelöst.

Vielen Dank für Eure Tipps. Hier noch einmal eine kurze Zusammenfassung, vielleicht hilft's ja dem einen oder der anderen.

Es ging darum, neben einem laufenden Webserver/FTP/mysql die lampp-Suite (zumindest den Apache und mysql) zu Testzwecken parallel laufen zu lassen.

Meine Schwierigkeiten hatten übrigens mit den Änderungen zu tun, die ./lampp security in ./etc/my.cnf vornimmt.

Antwortet man beim Security-Check auf die Frage

Code: Select all
XAMPP: MySQL ist ueber's Netzwerk erreichbar.
XAMPP: Normalerweise wird dies nicht benoetigt. Soll ich es abschalten? [ja]


mit "ja" werden die Client-Einstellungen in my.cnf für den Port überschrieben und auf Port = 0 gesetzt. - Das muss man entweder nachträglich wieder anpassen, oder man antwortet hier einfach mit "nein". Das bedeutet, der lampp-mysqld ist über das Netzwerk erreichbar. Also auf jeden Fall Passwörter setzen!

Hier die ausführliche Variante:

Um den zweiten mysqld zum Laufen zu bekommen habe ich folgende Änderungen vorgenommen (selbtverständlich nicht ohne vorher von den entsprechenden Dateien ein Backup zu erstellen):

In ./lampp/etc/my.cnf

Code: Select all
[client]
#password       = your_password
port            = 3306
socket          = /opt/lampp/var/mysql/mysql.sock

...

[mysqld]
port            = 3306
socket          = /opt/lampp/var/mysql/mysql.sock


habe ich in beiden Fällen (client und mysqld) die Ports angepasst, so dass my.cnf so aussah:

Code: Select all
[client]
#password       = your_password
port            = 3333
socket          = /opt/lampp/var/mysql/mysql.sock

...

[mysqld]
port            = 3333
socket          = /opt/lampp/var/mysql/mysql.sock


(Bei mir läuft kein DEC Notes, das normalerweise an diesem Port lauscht.)

@zschendh: Ein Anpassen der Socket-Einstellungen war nicht nötig, da mein Standard-mysqld seine Sockets woanders hinschreibt.

Dann noch httpd.conf und lampp selbst mit den nötigen Ports versorgt (schließlich läuft auf Port 80 mein Production-Webserver):

In ./lamp/etc/httpd.conf
(Dieser Teil ist nur nötig, wenn auch der Webserver auf einem anderen Port laufen soll. - Ich habe in diesem Fall keine Anpassungen für https vorgenommen.)

Code: Select all
Listen 80


geändert in

Code: Select all
Listen 8888


und in ./lampp/lampp die Anfragen ob auf den entsprechenden Ports schon jemand ein offenes Ohr hat:

[Zeile 172]

Code: Select all
if testport 80


ändern in

Code: Select all
if testport 8888


[Zeile 221]

Code: Select all
if testport 3306


ändern in

Code: Select all
if testport 3333


Damit sollte eigentlich alles in trockenen Tüchern sein. Dann wollen wir Apache und mysql mal starten. Ich starte beide Server von Hand, da ja mein "offizieller" FTP-Server bereits läuft.

Code: Select all
myserver:/opt/lampp # ./lampp startapache
XAMPP: Starte Apache mit SSL (und PHP5)...
myserver:/opt/lampp # ./lampp startmysql
XAMPP: Starte MySQL...
myserver:/opt/lampp #


Wunderbar. Ein Blick nach ps zeigt mir, dass httpd und mysqld laufen. Also gucken wir doch mal unter http://myserver.de:8888 und voila! - da isser. Auch phpmyadmin funktioniert einwandfrei.

Natürlich habe ich als erstes den Sicherheitscheck aufgerufen und muss feststellen, dass - wie es ja auch in der Dokumentation steht - das ganze System ziemlich unsicher ist. Also wieder zurück zur Kommandozeile und fix

Code: Select all
myserver:/opt/lampp # ./lampp security


eingegeben. Hier gibt es die Abfrage:

Code: Select all
...
XAMPP: MySQL ist ueber's Netzwerk erreichbar.
XAMPP: Normalerweise wird dies nicht benoetigt. Soll ich es abschalten? [ja]

Natürlich antworte ich mir 'ja'. Doch dann:

Code: Select all
XAMPP: Abgeschaltet!
XAMPP: Stoppe MySQL...
XAMPP: Starte MySQL...
XAMPP: MySQL muss gestartet sein um die Sicherheit ueberpruefen zu koennen.
XAMPP: MySQL muss gestartet sein um die Sicherheit ueberpruefen zu koennen.
...


Nanu?! Ein Blick in ./var/mysql/myserver.err zeigt folgende Einträge:

Code: Select all
...
060610 23:41:47  mysqld started
060610 23:41:47 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
060610 23:41:47 [ERROR] Do you already have another mysqld server running on port: 3306 ?
060610 23:41:47 [ERROR] Aborting
...


Das war dann der Moment, wo ich nicht mehr weiter wusste. Offenbar hat ./lampp security irgendwas verändert und jetzt versucht MySQL doch, an Port 3306 zu lauschen, was natürlich Wurst ist.

Der Blick in ./etc/my.cnf zeigt:

Code: Select all
# commented out by lampp security
#port           = 3333
port = 0


Da sind sie hin, meine Änderungen. Hier muss man die Anpassungen von lampp security also wieder rückgängig machen:

Code: Select all
port           = 3333
#port = 0


Nochmal zur Kommandozeile:

Code: Select all
myserver:/opt/lampp # ./lampp startmysql
XAMPP: Starte MySQL...
myserver:/opt/lampp #


...und alles läuft. Hurra! Und nochmal danke.

Ein Absichern von phpmyadmin und die nötigen Änderungen in ./phpmyadmin/config.inc.php überlasse ich als Hausaufgabe den geneigten Lesern.

HTH,

jwl
User avatar
jwl
 
Posts: 3
Joined: 09. June 2006 22:50
Location: Hamburg


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 3 guests