# MySQL - Problem?



## ralf-isi (1. Okt. 2011)

Guten Tag zusammen

Eine etwas komische Sache:
Habe heute Morgen an/in einem Web gearbeitet das unter ISPConfig gehostet ist. Zuerst keine Probleme, alles (http, e-mail und ftp) lief.

Doch plötzlich kam ich nicht mehr per ftp auf den Server. Die Verbindungsaufname ab dem Client geht ganz normal:

```
USER xyz
331 User xyz OK. Password requrired
PASS ******
530 Login authentication failed
```
(Dabei ist das Passwort im Client gespeichert.) Zur Sicherheit habe ich einen neuen ftp-User angelegt, Passwort von Hand eingegeben, Server 2 mal neu gestartet = Gleiches Ergebnis.

Im Systemlogfile finde ich
	
	



```
Oct  1 07:53:28 pluto mysqld[15173]: refused connect from localhost
Oct  1 07:53:28 pluto mysqld[15173]: refused connect from localhost
Oct  1 07:53:44 pluto pure-ftpd: (?@193.247.250.21) [INFO] New connection from 193.247.250.21
Oct  1 07:53:45 pluto mysqld[15173]: refused connect from localhost
Oct  1 07:53:45 pluto pure-ftpd: (?@193.247.250.21) [ERROR] The SQL  server seems to be down [Lost connection to MySQL server at 'reading  initial communication packet', system error: 0]
Oct  1 07:53:49 pluto pure-ftpd: (?@193.247.250.21) [WARNING] Authentication failed for user [xyz]
Oct  1 07:54:01 pluto /usr/sbin/cron[17279]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
```
Der MySQL - Server läuft, denn die Seite ist ein Shop und der ist ganz normal erreich- und sichtbar.

Ich habe keine Ahnung was da passiert ist und was mir das Logfile mit " 'reading  initial communication packet' " mitteilen möchte. 
Wie behebe ich den 'Fehler'?

Vielen Dank für Eure Hilfe und ein schönes Wochenende wünscht
ralf

PS
Auch Mail scheint betroffen zu sein: Im Mail-Error-Protokoll steht:
	
	



```
Oct  1 08:29:18 pluto postfix/trivial-rewrite[24495]: fatal:  proxy:mysql:/etc/postfix/mysql-virtual_domains.cf(0,lock|fold_fix):  table lookup problem
```


----------



## nowayback (1. Okt. 2011)

Moinsen,

ist nur ne Vermutung, aber kann es sein, das der user root und/oder user ispconfig keinen localhost eintrag haben - d.h. sich nicht von localhost verbinden dürfen sondern von allen hosts (% in Liste)?

Shell Befehle:

```
mysql -u root -p
```
Enter drücken und Passwort eingeben, dann mit Enter bestätigen


```
SELECT User, Host FROM mysql.user;
```
nachschauen ob die beiden user als hosteintrag "localhost" drinstehen haben.

Sollte soähnlich aussehen:

```
mysql> SELECT User, Host FROM mysql.user;
+------------------+------------------+
| User             | Host             |
+------------------+------------------+
| ispconfig        | localhost        |
| root             | localhost        |
+------------------+------------------+
2 rows in set (0.00 sec)
```
Es können da durchaus weitere User drinstehen... das ist nur ein Beispiel.

Grüße
nwb


----------



## ralf-isi (2. Okt. 2011)

Schönen guten Morgen

vielen Dank für die Idee und auch für die Bekanntgabe der benötigten Befehle. Habe ich gemacht und folgendes gesehen: 
Der User root hat je einen Eintag mit: 127.0.0.1, feste externe IP (ich bei einem Kollegen), localhost und pluto (so heisst der Server).
Der User ispconfig hat nur einen Eintag mit localhost.

Daneben gibt es einen User ohne Namen mit 2 Einträgen: localhost und pluto.

Ist das so Richtig, müsste ja sein. 

Auffällig an der ganzen Sache ist, dass der Shop (Zen-Card) läuft, (also somit MySQL)
jedoch: 
* Piwik (Analyse-Programm, auch DB-basiert) beim Aufruf die Konfiguration bemängelt. (Liegt aber richtig vor.)
* kein ftp - Zugang möglich ist. Bei keiner Domain. 

Gemacht habe ich bevor der 'Fehler' auftrat wie immer nichts.  Ausser im Shop html - Code korrigiert.

Bin für jede Hilfe dankbar und wünsche allen einen schönen, sonnigen Sonntag.
ralf

Nachtrag:
ssh läuft wohl ebenfalls nicht. Das soeben im Log gesehen:


> Oct  2 07:02:58 pluto sshd[28518]: refused connect from localhost (127.0.0.1)
> Oct  2 07:02:59 pluto mysqld[19476]: refused connect from localhost
> Oct  2 07:02:59 pluto mysqld[19476]: refused connect from localhost
> Oct  2 07:02:59 pluto mysqld[19476]: refused connect from localhost
> Oct  2 07:02:59 pluto mysqld[19476]: refused connect from localhost


neben dem bekannten:



> Oct  2 07:01:01 pluto pure-ftpd: (?@192.168.2.42) [INFO] New connection from 192.168.2.42
> Oct  2 07:01:01 pluto /usr/sbin/cron[28367]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
> Oct  2 07:01:02 pluto mysqld[19476]: refused connect from localhost
> Oct  2 07:01:02 pluto pure-ftpd: (?@192.168.2.42) [ERROR] The SQL server  seems to be down [Lost connection to MySQL server at 'reading initial  communication packet', system error: 0]
> ...


----------



## nowayback (3. Okt. 2011)

Moinsen,



> Nachtrag:
> ssh läuft wohl ebenfalls nicht. Das soeben im Log gesehen:


Dein SSH läuft nicht? Wie loggst du dich dann auf dem Server ein?




> Oct 2 07:02:58 pluto sshd[28518]: refused connect from localhost (127.0.0.1)


Diese Meldung würde ich mal so interpretieren, das du von dem Server auf dem du arbeitest, ne ssh verbindung zu eben jenem aufbauen wolltest. Der sinn dahinter erschließt sich mir nicht ganz. 




> Daneben gibt es einen User ohne Namen mit 2 Einträgen: localhost und pluto.


Mir ist nicht bekannt, das man namenlose User in MySQL anlegen kann. Bitte prüfe das nochmal nach. *** Edit: Namenlose User sind schon möglich, so wird jeder Username akzeptiert, macht aber m.M. nach keinen Sinn und würde ich bei mir als Sicherheitsrisiko einstufen und schnellstens entsorgen. ***




> Der User root hat je einen Eintag mit: 127.0.0.1, localhost und pluto (so heisst der Server).
> Der User ispconfig hat nur einen Eintag mit localhost.


Diese Einträge sind korrekt, aber Hinweis: "feste externe IP (ich bei einem Kollegen)" überdenken, denn wenn du keine "software" bei deinem kollegen hast, die daten von dem Server abfragen können soll, dann unnötig - jedoch ist es auch kein Fehler und hat somit nichts mit deinem Problem zutun.


Welche Distribution setzt du denn ein und in welcher Version? 
Welche MySQL Version setzt du ein?
Hast du schon mal versucht den Server neuzustarten, oder wenigstens den MySQL?
Hast du irgendwelche Passwörter geändert und es vergessen in den Konfigurationen einzutragen? Alternativ: Hast du versucht die Passwörter einmal neu zu setzen?
Hast du mal geschaut ob die benötigten Ports auch erreichbar sind? (nmap -sT IP-Adresse)

ISPConfig bedingt kann ich dir selbst wenig helfen, aber dein Problem scheint nicht am ISPConfig zu liegen, sondern irgendwo bei deinem System - und ich vermute stark beim mysql.

Vorsichtshalber würde ich auch rkhunter mal drüberlaufen lassen und schauen ob der was zu bemängeln hat und die iptables prüfen (iptables -L wenn ich mich nicht irre)

Grüße und schönen Feiertag
nwb


----------



## ralf-isi (3. Okt. 2011)

Schönen guten Morgen nwb und alle ISPConf'ler

ich bin wirklich dankbar für die Hilfe, denn ich denke alleine komme ich nicht auf den grünen Zweig.


Zitat von nowayback:


> Dein SSH läuft nicht? Wie loggst du dich dann auf dem Server ein?


Gar nicht :-( -- Der Server läuft im run-level 3 und ich logge mich ein, werde root und starte bei Bedarf X. -- Also ssh ist ebenfalls gelaufen bis dieses "Theater" los ging.




Zitat von nowayback:


> Diese Meldung würde ich mal so interpretieren, das du von dem Server auf dem du arbeitest, ne ssh verbindung zu eben jenem aufbauen wolltest. Der sinn dahinter erschließt sich mir nicht ganz.


Ich meine mal gelesen zu haben, dass solche Meldungen im Logfile vom System generiert werden als Test ob der Dienst läuft. Doch die Meldung besagt doch, dass MySQL Anfrage(n) ablehnt?



Zitat von nowayback:


> Mir ist nicht bekannt, das man namenlose User in MySQL anlegen kann. Bitte prüfe das nochmal nach. *** Edit: Namenlose User sind schon möglich, so wird jeder Username akzeptiert, macht aber m.M. nach keinen Sinn und würde ich bei mir als Sicherheitsrisiko einstufen und schnellstens entsorgen. ***


Deine Einstellung passt mir, also schmeisse ich die Beiden raus.



Zitat von nowayback:


> Diese Einträge sind korrekt, aber Hinweis: "feste externe IP (ich bei einem Kollegen)" überdenken, denn wenn du keine "software" bei deinem kollegen hast, die daten von dem Server abfragen können soll, dann unnötig - jedoch ist es auch kein Fehler und hat somit nichts mit deinem Problem zutun.


Stimmt - kann ich auch raus werfen weil ich das Heute nicht mehr benötige. 



Zitat von nowayback:


> Welche Distribution setzt du denn ein und in welcher Version?


openSUSE 11.2 Emerald Kernel 2.6.31.14-0.8-default 


Zitat von nowayback:


> Welche MySQL Version setzt du ein?


5.1.49-0.1.1 -- Yast zeigt bei einigen, dass etwas neuere Versionen erhältlich seien. Doch ein Update hab ich gestern abgebrochen weil Yast moserte wegen Abhängigkeiten, resp. das noch Anderes geändert werden müsse. Also hab ich mal die Finger davon gelassen.


Zitat von nowayback:


> Hast du schon mal versucht den Server neuzustarten, oder wenigstens den MySQL?


Ja, MySQL genauso wie auch das System. Keine Änderung .... leider.


Zitat von nowayback:


> Hast du irgendwelche Passwörter geändert und es vergessen in den Konfigurationen einzutragen?


Ganz klar Nein. 



Zitat von nowayback:


> Alternativ: Hast du versucht die Passwörter einmal neu zu setzen?


Nein (könnte ich mal versuchen und schauen was dann passiert. Doch siehe bitte weiter unten.) Ich habe einen neuen ftp - User angelegt und getestet. Gleiches Ergebnis.


Zitat von nowayback:


> Hast du mal geschaut ob die benötigten Ports auch erreichbar sind? (nmap -sT IP-Adresse)


 pluto (also der Server) steht hinter einer starken Firewall (IPCop), die Firewall leitet nur die benötigten Port an Pluto weiter. nmap -sT zeigt:
	
	



```
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
110/tcp   open  pop3
111/tcp   open  rpcbind
143/tcp   open  imap
631/tcp   open  ipp
783/tcp   open  spamassassin
993/tcp   open  imaps
995/tcp   open  pop3s
3306/tcp  open  mysql
5666/tcp  open  nrpe
8080/tcp  open  http-proxy
8081/tcp  open  blackice-icecap
10000/tcp open  snet-sensor-mgmt
10024/tcp open  unknown
10025/tcp open  unknown
```



Zitat von nowayback:


> ISPConfig bedingt kann ich dir selbst wenig helfen, aber dein Problem scheint nicht am ISPConfig zu liegen, sondern irgendwo bei deinem System - und ich vermute stark beim mysql.


Ich bedanke mich bei Dir herzlich für Deine Hilfe, Geduld und mitüberlegen bei der Fehlersuche/-lösung. Ich denke nicht, dass es ein ISPConfig - Fehler/Problem ist sondern tippe ebenfalls auf MySQL- 



Zitat von nowayback:


> Vorsichtshalber würde ich auch rkhunter mal drüberlaufen lassen und schauen ob der was zu bemängeln hat


rkhunter läuft mit, findet keine rootkit's oder sowas. 



Zitat von nowayback:


> und die iptables prüfen (iptables -L wenn ich mich nicht irre)der Befehl zeigt:
> 
> 
> 
> ...


----------



## ralf-isi (3. Okt. 2011)

*Nachtrag*

Kann den vorigen Beitrag nicht ändern ... er wird zu lang.

Nachtrag:
Ich habe die beiden Namenlosen - User gelöscht und MySQL neu gestartet - keine Besserung.  (Aber wohl was für die Sicherheit gemacht!)

Vieleicht hilft es weiter ... hier das Log von mysql:



> tail -f mysqld.log
> 111003 06:18:48 mysqld_safe mysqld from pid file /var/run/mysql/mysqld.pid ended
> 111003 06:19:55 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
> 111003  6:19:55 [Warning] '--skip-locking' is deprecated and will be  removed in a future release. Please use '--skip-external-locking'  instead.
> ...


Hat/kann das "skip-locking" den Fehler  verursachen? Wohl kaum oder .... aber wo finde ich das? Im Start-Skript  von mysql unter /etc/init.d nicht.


----------



## nowayback (3. Okt. 2011)

Moinsen ralf


so langsam aber sicher komm ich auch ans Ende... meine derzeit einzige Vermutung die ich noch hab, wäre das du deinen localhost Eintrag gelöscht hast. Bitte prüfe das mal nach (ifconfig)

Dann solltest du etwas ähnliches wie folgendes finden:

```
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:16436  Metrik:1
          RX packets:128281 errors:0 dropped:0 overruns:0 frame:0
          TX packets:128281 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:9801528 (9.3 MiB)  TX bytes:9801528 (9.3 MiB)
```
Falls nicht überprüfe deine interfaces - müssten bei Suse auch unter /etc/network/interfaces sein und dort dann prüfen ob folgende einträge vorhanden sind:

```
# The loopback network interface
auto lo
iface lo inet loopback
```
Prüfe bitte auch deine hosts.deny/hosts.allow ob localhost/127.0.0.1 erlaubt bzw. nicht verboten sind sowie pluto.

Kurz zur Begründung wie ich darauf komme: 
Du hast ein Problem geschildert mit deiner Datenbank sowie FTP und E-Mail zugang. Die FTP und E-Mail Daten liegen in der Datenbank, deswegen gehe ich davon aus, dass diese Dienste wieder funktionieren werden, wenn die Datenbank läuft.

- An dieser Stelle behalten wir im Hinterkopf das dein Shop funktioniert -

Dann war auch dein SSH betroffen und scheinbar nicht erreichbar. Die benötigten Ports für SSH und MySQL sind aber offen und auf Listen. 

- An dieser Stelle behalten wir im Hinterkopf das du per Shell an die Datenbank kommst -

Nun schauen wir uns die Logfiles, die du gepostet hast, nochmal genauer an:


> Oct  1 07:53:28 pluto mysqld[15173]: refused connect from *localhost*
> Oct 2 07:02:58 pluto sshd[28518]: refused connect from *localhost* (127.0.0.1)


Nun kommen wir zu den Sachen die wir im Hinterkopf behalten haben. Ist es möglich das der Shop die Datenbankverbindung nicht zum localhost aufbaut, sondern zum fqdn oder zur IP Adresse? Wenn ja, würde es erklären warum der Shop funktioniert.
Ähnlich verhält es sich mit der Shell MySQL Verbindung, denn diese nutzt, wenn ich mich recht erinnere, den hostnamen (in deinem Fall "pluto"). 

Sollte es das nun auch nicht sein, dann bin ich, wie oben geschrieben, auch langsam am Ende meines Wissens angekommen. 

*** Edit ***


> Hat/kann das "skip-locking" den Fehler verursachen? Wohl kaum oder .... aber wo finde ich das? Im Start-Skript von mysql unter /etc/init.d nicht.


Nein das sollte ncihts mit deinem Fehler zutun haben. Du kannst es aber beheben indem du die my.cnf editierst (vi /etc/mysql/my.cnf - evtl. anderer Pfad bei dir) und im Bereich [mysqld] den Eintrag skip-locking änderst in skip-external-logging
Dann noch speichern und dann MySQL neustarten und der Fehler sollte weg sein.
**********
Grüsse
nwb


----------



## ralf-isi (4. Okt. 2011)

*Gelöst: Lost connection to MySQL server at 'reading  initial communication packet'*

Guten Morgen nwb und alle anderen auch



Zitat von nowayback:


> so langsam aber sicher komm ich auch ans Ende...


 am Ende (mit meinem Latein) war ich schon und nun sind wir es! Meinen herzlichsten Dank an Dich!!

Als ich Deinen Beitrag gelesen habe, ist es mir förmlich in die Augen gesprungen:


Zitat von nowayback:


> Nun schauen wir uns die Logfiles, die du gepostet hast, nochmal genauer an:


 *localhost* ... das war es!

Erklärung (sollte das noch mal jemandem passieren):
Zum Schutz des Servers läuft fail2ban und denyhosts mit. denyhosts habe ich so eingestellt, dass es sich mit dem 'Heimat-Server' austauscht (wer Andere angreift hat bei mir (auch) nichts zu suchen).
dnyhosts sendet mir jeweils eine Mail welche IP gebannt wurde. Nur nicht am vergangenen Samstagmorgen als 2 IP gebannt wurden (Mail läuft dann auch nicht mehr) wovon die eine 127.0.0.1 also localhost war.
Auch wenn denyhosts gestoppt wird, sind die IP's gebannt!
Gebannte IP entfernen:


denyhosts stoppen mit:
	
	



```
/etc/init.d/denyhosts stop
```

IP aus /etc/hosts.deny entfernen. 
	
	



```
vi /etc/hosts.deny
```

IP aus den anderen Files von denyhots entfernen: 
	
	



```
sed -i.old /aaa.bbb.ccc.ddd/d /var/lib/denyhosts/*
```
 aaa.bbb.ccc.ddd durch die zu löschende IP ersetzen.
denyhosts starten mit:
	
	



```
/etc/init.d/denyhosts start
```

Und FREUDE haben.

@nwb ganz vielen Dank für Deine Überlegungen und tatkräftige Hilfe, Du glaubst nicht was für ein Stein mir vom Herzen gefallen ist!! Eigentlich sollten wir mal zum Bier. 

Und das mit dem skip-locking mach ich auch noch .... aber erst noch ein wenig die Freude geniessen.

Viele Grüsse aus der Schweiz
ralf


----------



## nowayback (4. Okt. 2011)

Moinsen Ralf

freut mich für dich, das du so nun deine Probleme beheben konntest.



> @nwb ganz vielen Dank für Deine Überlegungen und tatkräftige Hilfe


Gern geschehen 


Grüße nwb


----------



## ralf-isi (4. Okt. 2011)

Hallo - Halli


Zitat von nowayback:


> freut mich für dich, das du so nun deine Probleme beheben konntest.


 Und wie es mich freut, dass das Ganze wieder Rund läuft!!! - Die Bauarbeiter sind noch beschäftigt mit "Loch im Boden flicken".  



Zitat von nowayback:


> Gern geschehen


 Und genau das ist der springende Punkt weshalb ich Foren so mag. Geben und nehmen .... aber ein grooooooooooooooooosses Bier hast Du alle Weile zu gute.
Ich hoffe sehr, ich kann Dir auch mal einen grossen Stein in den Garten werfen. Wie auch immer.

Viele Grüsse
ralf


----------

