Etwas verbuggt?

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

Etwas verbuggt?

Postby wodim » 06. October 2016 12:44

Hi,

beim Starten meines MySQL-Servers wird folgendes protokolliert (XAMPP für Linux 5.5.28, Auszüge aus der Datei /opt/lampp/var/mysql/<hostname>.err):

2016-10-06 13:15:06 9404 [Note] RSA private key file not found: /opt/lampp/var/mysql//private_key.pem. Some authentication plugins will not work.
2016-10-06 13:15:06 9404 [Note] RSA public key file not found: /opt/lampp/var/mysql//public_key.pem. Some authentication plugins will not work.

Klar - diese Dateien kann er nicht finden, selbst wenn's die Dateien /opt/lampp/var/mysql/private_key.pem. und /opt/lampp/var/mysql/public_key.pem gäbe. :wink:

Kennt jemand diesen Fehler schon und weiß, wo er steckt? (Suche mich nämlich gerade dumm und dämlich nach einem anderen Fehler, der ein Folgefehler davon sein könnte / müsste.)
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby Nobbie » 06. October 2016 15:42

wodim wrote:Klar - diese Dateien kann er nicht finden, selbst wenn's die Dateien /opt/lampp/var/mysql/private_key.pem. und /opt/lampp/var/mysql/public_key.pem gäbe. :wink:


Wieso ist das "klar"?? Der Kernel verkraftet eine (beliebige!) Wiederholung des Slashes problemlos, gib beispielsweise einfach mal "cd /opt//lampp" in einem Terminal ein - das wird problemlos ausgeführt und man landet in /opt/lampp.

Irgendjemand hat da in den Konfigurationsdateien (wahrscheinlich in httpd-ssl.conf) Murks eingetragen. In meiner Linux-Xampp-Umgebung steht da nichts entsprechendes drin.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: Etwas verbuggt?

Postby wodim » 06. October 2016 17:15

Nobbie wrote:Wieso ist das "klar"?? Der Kernel verkraftet eine (beliebige!) Wiederholung des Slashes problemlos, gib beispielsweise einfach mal "cd /opt//lampp" in einem Terminal ein - das wird problemlos ausgeführt und man landet in /opt/lampp.

Stimmt. :wink:

Nobbie wrote:Irgendjemand hat da in den Konfigurationsdateien (wahrscheinlich in httpd-ssl.conf) Murks eingetragen.

Ok, da brauche ich den Fehler also nicht zu suchen.

Mein Problem ist nämlich: Ich habe mehrere MySQL-Clientprogramme, die mit dem "standardmäßig" installierten MSQL-Server keine Probleme haben, aber eben mit dem von XAMPP. Die wollen über /var/run/mysqld/mysqld.sock zugreifen, aber XAMPP legt eine /opt/lampp/var/mysql/mysql.sock an.

Ich hab' also in das Startscript von XAMPP folgende Funktion eingebaut:

Code: Select all
mySQLSocket() {

   lamppSocket=/opt/lampp/var/mysql/mysql.sock

   sleep 3; statusLamppSocket=$(fileStatus "$lamppSocket")

   [ ! $statusLamppSocket = UNIXDomainSocket ] && beep && zenity --error --title "/opt/lampp/xampp startmysql" --text "$statusLamppSocket:\n\n$lamppSocket " && exit 1

   mysqlSocket=/var/run/mysqld/mysqld.sock
   statusMysqlSocket=$(fileStatus $mysqlSocket)

   if [ ! $statusMysqlSocket = symLink ]; then

      [ ! $(fileStatus var/run/mysqld) = Directory ] && mkdir /var/run/mysqld && chown mysql:mysql /var/run/mysqld && chmod 757 /var/run/mysqld

      ln -s $lamppSocket $mysqlSocket

   fi
}

Die wird in der Funktion startMySQL() aufgerufen (wenn der Server gestartet ist, 1s warten war etwas zu kurz), :wink: fragt also ab, ob /var/run/mysqld/mysqld.sock (noch) existiert - und wenn nicht, legt sie das Verzeichnis an, setzt die Rechte entsprechend und legt darin mysqld.sock als Symlink auf /opt/lampp/var/mysql/mysql.sock an.

Das funktioniert - nur nicht beim Systemstart. Um das zu starten, was ich von XAMPP brauche, habe ich in die /etc/rc.local die Zeilen eingetragen:

Code: Select all
/opt/lampp/lampp startmysql; [ ! $? -eq 0 ] && exit 1
/opt/lampp/lampp startapache; [ ! $? -eq 0 ] && exit 1

Da funzt das aber nicht. Die Server werden gestartet, aber /var/run/mysqld/mysqld.sock gibt's nicht. Wenn ich als Root "/opt/lampp/lampp startmysql" im Terminal eingebe, funzt es komischerweise. Wenn ich mich (grafisch) als root / User hk ein / auslogge, auch.

Und das Tollste: MySQL- Workbench kommt problemlos auf den MySQL-Server, egal, welcher gerade läuft. Obwohl ich als Verbindungsparameter "localhost" angegeben habe. Wie macht's denn das nun wieder :?: ? Jetzt bin ich mit meinem Latein am Ende. :wink:

/opt/lampp/etc/my.cnf wrote:# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!

Das ist zwar Blödsinn, aber deshalb baut der MySQl-Server von XAMPP ja keine tcp-Verbindung auf. (Der "Standard" - Server macht das über "bind-address = 127.0.0.1", also "localhost" - was soll denn da passieren? Wenn einer da was von außen knacken wollte, müsste er ja erst mal meinen Router austricksen.) :wink:

---------------

Anm. zu meiner selbstgebastelten Funktion:

fileStatus () darin ist wiederum ein Eigenbau aus meinen privaten Libraries - irgendwie fängt die Shell-Programmierung also langsam an, Spaß zu machen. Wenn man nicht mehr sowas konstruieren muss wie

Code: Select all
printf "%s" "$1" | sed -e "s/$2[^<>]*$3/$4/g; /^[ ]*$/d"

sondern einfach aus dem Katalog kopiert:
Code: Select all
# Jeden Teilstring zwischen $strLeftMarg und $strRightMarg ersetzen
strRep=$(replace "$str" "$strLeftMarg" "$strRightMarg" "$strSub")

(Funktioniert übrigens sowohl mit Strings als auch mit Dateien.) Hier also die bewusste Funktion:

Code: Select all
#B Status einer Datei feststellen: not_found / Directory / regularFile / symLink / blockSpecialDevice / characterSpecialFile / UNIXDomainSocket / namedPipe
fileStatus () { #RV status #A "$file"
# http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_004.htm#RxxKap00600404004E261F04B172

   [ ! $(find "$1" 2>/dev/null) ] && echo not_found && return 1

   [ -d "$1" ] && echo Directory            && return 0 # Verzeichnis
   [ -f "$1" ] && echo regularFile          && return 0 # reguläre Datei
   [ -L "$1" ] && echo symLink             && return 0 # symbolischer Link (dasselbe wie -h)
   [ -b "$1" ] && echo blockSpecialDevice       && return 0 # Gerätedatei
   [ -c "$1" ] && echo characterSpecialFile    && return 0 # Gerätedatei
   [ -S "$1" ] && echo UNIXDomainSocket       && return 0 # Gerätedatei im Netzwerk, (UNIX-Domain-)Socket
   [ -p "$1" ] && echo namedPipe             && return 0 # named Pipe

   # [ -t [FD] ] # Ein Filedescriptor (FD) ist auf einem seriellen Terminal geöffnet.
}
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby Nobbie » 06. October 2016 18:02

wodim wrote:Ich hab' also in das Startscript von XAMPP folgende Funktion eingebaut:


Grauenhaft...

Mehr fällt mir zu diesem Chaos nicht ein. Die Sockets (die andererseits wahrscheinlich eh nicht benutzt werden) zwischen zwei Clients zu mischen, da fliegt alles weg. Ich weiß nicht, warum Ihr so kaputte Umgebungen braucht, aber diese Umgebung ist definitiv kaputt. Da kann und will ich auch nicht weiter helfen, das ist so schrecklich, da macht mal selbst drauflos. s,o, - grauenhaft...
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: Etwas verbuggt?

Postby wodim » 06. October 2016 18:32

Nobbie wrote:Grauenhaft... Mehr fällt mir zu diesem Chaos nicht ein.

Das ist weder Chaos noch grauenhaft. Du siehst das nur falsch. :wink:

Nobbie wrote:Die Sockets (die andererseits wahrscheinlich eh nicht benutzt werden)

Das ist nur noch einer, und der wird benutzt.

Nobbie wrote: zwischen zwei Clients zu mischen, da fliegt alles weg.

Es wird nur noch ein einziger Socket angelegt, und zwar /opt/lampp/var/mysql/mysql.sock Und die Programme, die (immer noch) über /var/run/mysqld/mysqld.sock zugreifen wollen, kriegen den als Link auf /opt/lampp/var/mysql/mysql.sock. Und das funktioniert. Da ist nichts "gemischt" oder "kaputt". Nur nicht gerade "elegant", zugegeben. :wink:

Nobbie wrote:Ich weiß nicht, warum Ihr so kaputte Umgebungen braucht,

Weil eben diese Programme, wie's ausschaut, nur über einen Socket auf den Server zugreifen können, nicht über eine IP - Verbindung.
Last edited by wodim on 06. October 2016 20:15, edited 1 time in total.
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby wodim » 06. October 2016 20:06

Übrigens weiß ich nicht, was du hast. Das war nämlich das einzige "Kaputte":

Code: Select all
mySQLSocket() {
...
...
...
}

So funzt es jetzt:

Code: Select all
mySQLSocket () {
...
...
...
}

Siehst du den feinen Unterschied? Hättest du als Linux-Spezl aber auf den ersten Blick sehen müssen (wozu hab' ich den ganzen Sermon hier reinkopiert), statt irgendwas von wegen "Gemisch" und "Wegfliegen" zu schwafeln. :wink:

Nobbie wrote:Irgendjemand hat da in den Konfigurationsdateien (wahrscheinlich in httpd-ssl.conf) Murks eingetragen. In meiner Linux-Xampp-Umgebung steht da nichts entsprechendes drin.

Auch das nicht? (/opt/lampp/etc/my.cnf, Zeilen 17...21)

Code: Select all
# The following options will be passed to all MySQL clients
[client]
#password   = your_password
port      = 3306
socket      = /opt/lampp/var/mysql/mysql.sock

"The following options will be passed to all MySQL clients" - mein erster Fehler war wiederum, mich darauf zu verlassen. Das läuft nämlich nicht so. Jedenfalls merken wie gesagt meine Clientprogramme, die über einen Socket zugreifen wollen, nichts davon. Und ehe ich ihnen das beibringe (das wird wohl nur mit Neucompilieren zu machen sein) - naja, du siehst meine Lösung. Übrigens für ein Problem, das schon viele hatten.
Last edited by wodim on 06. October 2016 20:43, edited 1 time in total.
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby wodim » 06. October 2016 21:35

wodim wrote: naja, du siehst meine Lösung.

Aber diesen Fehler auch nicht (meinen "Standardfehler" - beim Kopieren immer mal das erste Zeichen nicht mit erwischen):

Code: Select all
[ ! $(fileStatus var/run/mysqld) = Directory ] && mkdir /var/run/mysqld && chown mysql:mysql /var/run/mysqld && chmod 757 /var/run/mysqld

Also letzte Korrektur. :wink:

/var/run/mysqld
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby Nobbie » 07. October 2016 11:34

wodim wrote:Weil eben diese Programme, wie's ausschaut, nur über einen Socket auf den Server zugreifen können, nicht über eine IP - Verbindung.


Das schaut mit absoluter Sicherheit nur so aus. Selbst wenn es so wäre, dann muss eben pro Server/Client ein eigener Socket zur Verfügung gestellt werden. Ein Socket ist eine Art Pipe, ein Kommunikationsmechanismus zwischen zwei Prozessen, wenn da mehr als ein ein Prozess auf Server- oder Clientseite zugreift, geschieht Chaos (das läßt ebenfalls vermuten, dass mindestens ein Client NICHT über Sockets zugreift). Ich könnte so nicht arbeiten, irgendetwas zusammewuseln, was irgendwie läuft, aber warum es letztendlich läuft, oder eben manchmal auch nicht, ist dann dem Zufall geschuldet.

Eigentlich kenne ich keinen Grund, überhaupt mehr als einen MySQL Server einzusetzen.

wodim wrote:Übrigens weiß ich nicht, was du hast. Das war nämlich das einzige "Kaputte":


Das Konzept ist kaputt:

Mein Problem ist nämlich: Ich habe mehrere MySQL-Clientprogramme, die mit dem "standardmäßig" installierten MSQL-Server keine Probleme haben, aber eben mit dem von XAMPP. Die wollen über /var/run/mysqld/mysqld.sock zugreifen, aber XAMPP legt eine /opt/lampp/var/mysql/mysql.sock an.


Laut dieser Beschreibung hast Du mehrere Clients und mehrere Server, aber die "teilen" sich einen Socket. Vielleicht ist Deine Beschreibung auch falsch oder unvollständig, so wie es oben beschrieben ist, ist ein MySQL Server vom System installiert und einer von Xampp und beide benutzen denselben Socket. So ist es dargestellt und wenn das stimmt, ist das chaotisch.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: Etwas verbuggt?

Postby Nobbie » 07. October 2016 11:58

Nach längerem Nachdenken gebe ich mal einen Versuch ab, wie die Problembeschreibung wirklich gemeint war. Du darfst nie vergessen, ich weiß NICHTS von Deinem Server, Du weißt ALLES von Deinem Server. Ich sehe nur die paar Begriffe hier im Forum und muss versuchen nachzuvollziehen, was WIRKLICH gemeint ist. Da bin ich jetzt an diesem Punkt, so bekommt das ganze wieder einen Sinn:

"Ich habe hier ein paar Programme vorliegen, die mit einem MySQL Server kommunizieren müssen, diese Programme sind leider nicht von außen konfigurierbar und liegen fertig kompiliert in Binärcode vor. In diesen Programmen ist als Socket der Pfadname /var/run/mysqld/mysqld.sock hart codiert. Ich betreibe Xampp auf meinem System, der Xampp MySQL Server ist per Default aber so konfiguriert, dass als Socket die Datei /opt/lampp/var/mysql/mysql.sock dient. Welche Möglichkeiten bieten sich an, die vorhandenen Programme dennoch erfolgreich mit Xampps MySQL Server kommunizieren zu lassen?".

Siehst Du den gigantischen Unterschied zwischen dieser Beschreibung und Deiner Beschreibung, in der Du von dem "standardmäßig installierten MySQL Server" sprichst (also ein zweiter Server)? s.o. - hier kennt niemand auch nur ein einziges Byte Deiner Umgebung, wir kennen nur den Inhalt der hier geschriebenen Worte. Ich würde vermuten, meine Beschreibung ist präziser.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: Etwas verbuggt?

Postby wodim » 08. October 2016 12:52

Nobbie wrote:Nach längerem Nachdenken gebe ich mal einen Versuch ab, wie die Problembeschreibung wirklich gemeint war.

Also erst mal danke für deine Geduld.

Nobbie wrote:Du darfst nie vergessen, ich weiß NICHTS von Deinem Server, Du weißt ALLES von Deinem Server.

Naja, ich schätze mal, eher umgekehrt. Oder zumindest hält es sich die Waage. :wink:

Nobbie wrote:Siehst Du den gigantischen Unterschied zwischen dieser Beschreibung und Deiner Beschreibung, ...

Schon. :wink:

Nobbie wrote:... in der Du von dem "standardmäßig installierten MySQL Server" sprichst (also ein zweiter Server)?

Nein, chronologisch gesehen der erste. :wink: Mit XAMPP experimentiere ich erst seit ein paar Tagen wieder, MySQL-Server 5.5 für Debian lief hier schon "ewig". Ok, "standardmäßig installiert" war wohl falsch ausgedrückt, entschuldige bitte.

Nobbie wrote:... so wie es oben beschrieben ist, ist ein MySQL Server vom System installiert und einer von Xampp ...

So etwa. Obwohl ich mir nicht sicher bin, ob ersterer eben "standardmäßig" mit dem OS (jessie) mitinstalliert wurde, aber das ist ja auch wurscht. :wink:

Nobbie wrote:... und beide benutzen denselben Socket.

Nein. Der "Standardserver" (entschuldige den Ausdruck) :wink: legt(e) wie gesagt /var/run/mysqld/mysqld.sock an, der von XAMPP /opt/lampp/var/mysql/mysql.sock

Aber es lief / läuft eh' immer nur einer von beiden.

Nobbie wrote:Eigentlich kenne ich keinen Grund, überhaupt mehr als einen MySQL Server einzusetzen.

Ich auch nicht. :wink: Deshalb sieht meine /etc/rc.local jetzt so aus:

Code: Select all
#!/bin/bash
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/opt/lampp/lampp startapache
/opt/lampp/lampp startmysql

sleep 3

mkdir /var/run/mysqld; chown mysql:mysql /var/run/mysqld; chmod 757 /var/run/mysqld

ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

exit 0

Und in meiner /opt/lampp/etc/my.cnf steht jetzt:
Code: Select all
bind-address      = 127.0.0.1

("skip-networking" ist ja wohl vollkommener Käse.) :wink: Also so läuft's erst mal, muss aber öfters mal schief laufen, wenn ich dich richtig verstanden habe:

Nobbie wrote:Das läßt ebenfalls vermuten, dass mindestens ein Client NICHT über Sockets zugreift.

Sowieso. :wink: "MySQL-Workbench" mit Sicherheit, die anderen - na, schaunmermal ...

Nobbie wrote:
wodim wrote:Weil eben diese Programme, wie's ausschaut, nur über einen Socket auf den Server zugreifen können, nicht über eine IP - Verbindung.
Das schaut mit absoluter Sicherheit nur so aus.

Das sollte mich freuen. Wirft aber neue Fragen auf.

Wie sieht das bei meinen Shellscripten aus (die ja wiederum des öfteren andere Shells aufmachen) ... oder wenn ich im Terminal (u.a.) mit MySQL arbeite ... Die anderen Clients sind im Moment: Emma, phpMyAdmin, MySQLAdminer, GNUCash, EleLa, (reicht für's erste), ... :wink: (Wenn du mich jetzt fragst, wozu mehrere Admin-Tools: Jedes hat seine Vor- und Nachteile. Und z.B. zeigt mir "MySQL- Workbench" grafisch bei Relationen nur an, welche Tabelle auf welche referenziert, nicht, welcher Schlüssel auf welchen, MySQLAdminer falsch) ...

Nobbie wrote:Laut dieser Beschreibung hast Du mehrere Clients und mehrere Server, aber die "teilen" sich einen Socket.

Nein, nur mehrere Clients. Und zwar /opt/lampp/var/mysql/mysql.sock
(Auch wenn ich ihnen mittels Symlink /var/run/mysqld/mysqld.sock, also den "vom Standardserver gewohnten" vorgaukele.) :wink:

Und das ist ein Fehler, sagst du? Dann aber das offensichtlich auch:

Code: Select all
# The following options will be passed to all MySQL clients
[client]
#password   = your_password
port      = 3306
socket      = /opt/lampp/var/mysql/mysql.sock


Obwohl's so wie gesagt eh' nicht funktioniert ("will be passed to all MySQL clients"). Wie sollte es auch?

Nobbie wrote:Selbst wenn es so wäre, dann muss eben pro Server/Client ein eigener Socket zur Verfügung gestellt werden. Ein Socket ist eine Art Pipe, ein Kommunikationsmechanismus zwischen zwei Prozessen, wenn da mehr als ein ein Prozess auf Server- oder Clientseite zugreift, geschieht Chaos

Eben. Also wie kam der Mensch auf die Idee, sowas in die /opt/lampp/etc/my.cnf 'reinzuschreiben???

Ich hab's ja auch anders 'rum angedacht, also meinen "Standardserver" weiter laufen lassen - aber den Indianer von XAMPP dazu zu bewegen, auf den zuzugreifen statt auf den XAMPP-eigenen, scheint mir noch einiges komplizierter ...

Den "Standardserver" hab' ich jetzt erst mal wieder 'runtergeschmissen, aber irgendwie reicht Deinstallieren über die Paketverwaltung nicht so ganz - das System will ihn beim Booten immer noch starten, kann's natürlich nicht. :wink:
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby Nobbie » 08. October 2016 13:34

wodim wrote:Und das ist ein Fehler, sagst du?


Nein, das ist kein Problem, ein Fehler ist es erst, wenn Du zwei Server hast und dazu jeweils mindestens einen Client (die Anzahl Clients ist eigentlich egal) und für alles das nur einen einzigen Socket. So klang für mich die Beschreibung und das ist "chaotisch", weil das nicht funktioniert. Ich vermute sogar, dass der "spätere" Server (der als zweiter gestartet würde) dann nicht startet. Wahrscheinlich gibt es dann einen I/O Fehler irgendeiner Art. Aber so wie es da stand, sah es so aus, als wenn Du den MySQL Server von Linux (Ubuntu) installiert und laufen hast (nennst den "standardmäßig") und auch noch den Xampp Server und dann verbiegst Du die Sockets so, dass es es nur einen Socket für alle gibt. So ist das hier angekommen und da sind mir dann ein paar Haare ausgefallen (aber mache Dir keine Sorgen, ich habe noch ziemlich viele Haare....).

Ansonsten, wenn nur ein MySQL Server läuft (in diesem Fall der von Xampp) und darauf greifen beliebig viele Clients zu, dann ist es natürlich kein Problem, wenn die über den gleichen Socket gehen. Mehr noch: es geht ja kaum anders. Der Server unterstützt ja nur einen einzigen Socket (man kann zwar theoretisch bei den Clients immer wieder andere Sockets angeben, aber das nutzt ja nichts, weil der Server nur einen Socket kennt). Das gleiche gilt für den Port, den man alternativ benutzen kann. Standardmäßig ist für MySQL der TCPIP Port 3306 definiert.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: Etwas verbuggt?

Postby wodim » 08. October 2016 14:50

Nobbie wrote:
wodim wrote:Und das ist ein Fehler, sagst du?
Nein, das ist kein Problem, ein Fehler ist es erst, wenn Du zwei Server hast und dazu jeweils mindestens einen Client (die Anzahl Clients ist eigentlich egal) und für alles das nur einen einzigen Socket. So klang für mich die Beschreibung und das ist "chaotisch", weil das nicht funktioniert. Ich vermute sogar, dass der "spätere" Server (der als zweiter gestartet würde) dann nicht startet. Wahrscheinlich gibt es dann einen I/O Fehler irgendeiner Art.

Jo, das merkt schon das Startscript des jeweiligen Servers, wenn ein anderer läuft (frag' mich mal, woran) :wink: - jedenfalls startet es "seinen" dann gar nicht erst. Man stelle sich mal vor, ein Client könnte über dieselbe Verbindung / denselben Socket auf mehrere Server gleichzeitig zugreifen, ohne es zu "merken" - oder gar nicht zu "wissen", auf welchen ...

Nobbie wrote:Aber so wie es da stand, sah es so aus, als wenn Du den MySQL Server von Linux (Ubuntu) installiert und laufen hast (nennst den "standardmäßig") und auch noch den Xampp Server und dann verbiegst Du die Sockets so, dass es es nur einen Socket für alle gibt. So ist das hier angekommen ...

Was denn - für so bekloppt hast du mich gehalten? :roll:

Nobbie wrote:... und da sind mir dann ein paar Haare ausgefallen (aber mache Dir keine Sorgen, ich habe noch ziemlich viele Haare....).

Hast ja Recht, zum Friseur müsste / will ich auch schon lange mal wieder. :wink: Wie geht's dir eigentlich sonst so?

Nobbie wrote:Ansonsten, wenn nur ein MySQL Server läuft (in diesem Fall der von Xampp) und darauf greifen beliebig viele Clients zu, dann ist es natürlich kein Problem, wenn die über den gleichen Socket gehen. Mehr noch: es geht ja kaum anders. Der Server unterstützt ja nur einen einzigen Socket (man kann zwar theoretisch bei den Clients immer wieder andere Sockets angeben, aber das nutzt ja nichts, weil der Server nur einen Socket kennt).

Ach - schrubst du nicht eben noch:

Nobbie wrote:... dann muss eben pro Server/Client ein eigener Socket zur Verfügung gestellt werden. Ein Socket ist eine Art Pipe, ein Kommunikationsmechanismus zwischen zwei Prozessen, wenn da mehr als ein Prozess auf Server- oder Clientseite zugreift, geschieht Chaos

Also wer hat hier wen durcheinandergebracht? :wink:

Nobbie wrote:Das gleiche gilt für den Port, den man alternativ benutzen kann. Standardmäßig ist für MySQL der TCPIP Port 3306 definiert.

Stimmt, das "wissen" meine Clients auch alle, wenn ich ihnen eine neue Verbindung aufschwatzen will. ;)

Nobbie wrote:... MySQL Server von Linux (Ubuntu) ...

Gibt's da Unterschiede? Ich hab' nun mit Mint angefangen, bin über Ubuntu schließlich beim "Urvater" Debian gelandet, und da bin ich seit Sqeeze, jetzt also bei Jessie. Nur von Gnome musste ich mich verabschieden - das ist ja inzwischen grausam. :roll:

http://www.internetforen.de/viewtopic.p ... lds#p73134
Last edited by wodim on 08. October 2016 15:11, edited 1 time in total.
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby Nobbie » 09. October 2016 11:45

wodim wrote:
Nobbie wrote:... MySQL Server von Linux (Ubuntu) ...

Gibt's da Unterschiede?


Jain.

Die Serversoftware ist die gleiche, aber die verschiedenen Distributionen haben es sich (leider!) angewöhnt, die Konfiguration verschieden aufzubauen. Das ist insofern für ungeübte Endanwender verwirrend, als dass sie nicht erkennen, dass im Prinzip die Konfigurationen ineinander überführbar sind. Wobei das für MySQL noch sehr überschaubar ist, aber speziell die Apache Konfiguration ist ja beispielsweise unter Ubuntu vollkommen anders modularisiert als unter Xampp. Dabei gehen die beide vom gleichen "Ursprung" aus, nämlich der Datei httpd.conf (bzw. bei manchen Distributionen wird die auch apache2.conf genannt). Aber da verbirgt sich keine Hexerei und nichts dahinter, mit verschachtelten includes wird die Konfiguration Stück für Stück zusammengefrickelt. Eigentlich könnte man nach wie vor auch einfach eine riesige monolithische httpd.conf schreiben (vor vielen Jahren war das auch noch der Normalfall).

Aber dass eben beispielsweise die total andere Hierarchie unter Ubuntu theoretisch komplett auch unter Xampp laufen würde (und da wird nach ganz anderen Kriterien modular aufgeteilt), das ist sicherilich lange nicht jedem klar. Und das gleiche gilt (aber in deutlich geringerem Ausmaß, das liegt einfach an der Natur der Sache, dass Apache viel komplexer strukturiert ist als MySQL) eben auch für MySQL. Der Server ist genau der gleiche, also wenn ein Dingen MySQL 5.4.3 oder so heißt, dann ist das funktional das gleiche, aber die Daten liegen möglicherweise in anderen Verzeichnissen, vielleicht wird eine andere Default Engine eingesetzt, es gibt wahrscheinlich andere Defaultwerte für bestimmte Einstellungen usw.

Der Vorteil der Linux Distributionen besteht allerdings darin, dass sie eben aus den Repositories die Tools generieren und dass die einzelnen Werkzeuge relativ leicht upgradebar sind und auch selbst recht einfach zu kompilieren sind. Das geht bei Xampp nur schlecht bis gar nicht, Xampp hat dafür den Vorteil, dass es per Knopfdruck zu installieren ist und dass es vor allem unter Windows sehr ähnlich aussieht wie unter Linux, für Umsteiger eine durchaus wertvolle Hilfe. Wer sonst von einer Xampp (WIndows) Umgebung auf Linux umsteigt und will dort die Serverumgebung aus der Distribution einsetzen, wird mit absoluter Sicherheit mit vielen Einstellungsparametern seine liebe Not haben, weil er die Stelle nicht findet, wo er die Einstellung vornehmen muss.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: Etwas verbuggt?

Postby wodim » 09. October 2016 12:54

Hm, hm, ...

also ich dachte ja erst, mit dem MySQL-Server von XAMPP konfigurations- und administrationsmäßig genauso verfahren zu können wie mit meinem bisher einwandfrei laufenden "Standardserver" - das war aber ein typischer Fall von "Denkste". :wink:

Ich vermute nun stark, die angesprochenen Probleme, die meine MYsql-Admin-Tools damit haben, sind eben darauf zurückzuführen. Habe halt meine Datenbanken vom "Standardserver" mit MysqlDump abgezogen und auf dem XAMPP-Server wieder eingelesen - da funzt aber einiges etwas anders. Z.B. gibt's da einen User 'root' (ohne Passwort), aber der darf längst nicht alles machen. Und jetzt will's mir partout nicht gelingen, einen User 'root' (mit dem üblichen Passort 'mysqlroot' und ALLEN Rechten) anzulegen - eben weil's da keinen User gibt, der das darf ... :roll: (Auf dem "Standardserver" aus den Debian-Paketquellen wird der beim Installieren angelegt - da wirst du nach dem Passwort gefragt. Und notfalls gibts da noch einen Super-Super-User 'debian-sys-maint', Passwort irgendwo abgelegt - das kennt der Server von XAMPP alles nicht.) Also: Kannst du mir einen Tipp geben, wie ich das hinkriege?
Der Schlüssel zur Freiheit ist der Mut zur Wahrheit.
wodim
 
Posts: 35
Joined: 26. November 2008 16:02

Re: Etwas verbuggt?

Postby Altrea » 09. October 2016 13:04

Was darf der XAMPP MySQL root User deiner Meinung nach denn nicht?
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Next

Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 1 guest