You are not logged in.

Tyrargo

Beginner

  • "Tyrargo" started this thread

Posts: 33

wcf.user.option.userOption53: Nein

  • Send private message

1

Tuesday, February 28th 2012, 6:17pm

Sourcebans-Fehler: Can't connect to local MySQL server through socket

Wir haben einen Rootserver. Sourcebans lief auch wunder. Bis wir eine Speichererweiterung bekommen haben. Seitdem steht in den Sourceban-Logs von allen Servern: Can't connect to local MySQL server through socket

- Ich habe nichts an den Dateien verändert.
- Der symbolische Link ist auch gesetzt.

Nun meine Frage: Kann es sein, dass noch irgendwas am Root selbst gestartet werden muss? Sachen wie MySql, Apache laufen.

Ich weiß nur nicht, wie die Firewall aussieht, ob die nun vielleicht was blockt.
Gameserver und Sourcebans liegen auf dem gleichen Server.

Hoffe, es kann mir jemand helfen.

Edit: Hat sich erledigt! Hatte den Softlink falsch geschrieben. Werd ihn nun ohne -s eintragen, damit ich das nach einem Reboot nicht immer wieder selbst machen muss.

This post has been edited 1 times, last edit by "Tyrargo" (Feb 28th 2012, 6:24pm)


Tyrargo

Beginner

  • "Tyrargo" started this thread

Posts: 33

wcf.user.option.userOption53: Nein

  • Send private message

2

Tuesday, February 28th 2012, 6:35pm

Kann ich es irgendwie einrichten, dass dieser Befehl:

Source code

1
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock


automatisch ausgeführt wird, falls der Server mal neu gestartet wird? Oder dass die Verknüpfung dauerhaft da ist?

Impact

Super Moderator

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

3

Tuesday, February 28th 2012, 6:58pm

Wieso willst du das machen?
Mir ist aber nicht bekannt dass sich Symbolische Links in Luft auflösen.

MfG
Impact

LeGone

Beginner

Posts: 46

wcf.user.option.userOption53: Ja

  • Send private message

4

Tuesday, February 28th 2012, 8:29pm

Wir setzen den Link auch jedes mal neu ... immer beim Restart des Servers.
Besser gesagt wenn wir die Gameserver starten.
Ist ja nur eine Zeile mehr ^^
Verändere die Sourcewelt so wie du es willst ;)
(Durch modifizieren, spawnen, laden, speichern von Entities)
Extended Grabbermod -> Ent-Control

DeaD_EyE

Administrator

Posts: 3,980

Location: Hagen

Occupation: Mechatroniker (didaktische Systeme)

wcf.user.option.userOption53: Nein

  • Send private message

5

Tuesday, February 28th 2012, 9:21pm

Ist abhängig von der eingesetzten Distribution.
Debian löscht standardmäßig den Inhalt von /tmp nach einem Neustart.
Normal sollten auch Hardlinks gelöscht werden.

Um das Verhalten zu deaktivieren, kann man die rcS abändern.

/etc/default/rcS

Source code

1
2
3
#TMPTIME=0 #Alle Dateien nach einem Neustart löschen
#TMPTIME=-1 #Dateien für immer behalten
#TMPTIME=X  #Dateien löschen, die älter als X Tage sind


Manche mounten /tmp als tempfs, wodurch der Inhalt definitiv nach einem Neustart verloren geht.
Am einfachsten wäre es mittels init-script den Symlink beim Neustart zu setzen.
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock


/etc/init.d/mysql.sock

Source code

1
2
#!/bin/sh
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

chmod 700 /etc/init.d/mysql.sock

Dann im Runlevel 2 eintragen:

Source code

1
ln -s /etc/init.d/mysql.sock /etc/rc2.d/S99mysql.sock

Das Script ist nicht Sysinit-V-Konform. Es sollte aber keine Probleme bereiten.

Tyrargo

Beginner

  • "Tyrargo" started this thread

Posts: 33

wcf.user.option.userOption53: Nein

  • Send private message

6

Wednesday, February 29th 2012, 2:39pm

Danke für die Antwort!

MadMakz

Super Moderator

Posts: 1,878

Location: ~#

wcf.user.option.userOption53: Ja

  • Send private message

7

Wednesday, February 29th 2012, 7:30pm

alternativer weg wäre noch die sock einträge konsistent zu machen. die sock direktive gibt es drei mal in my.cnf (je 1x unter client, mysqld, mysqld_safe).

wichtig ist das der PHP user auf den socket pfad der in der my.cnf steht zugreifen kann.

my.cnf

Source code

1
2
3
4
5
6
7
8
9
10
11
[client]
...
socket          = /var/run/mysqld/mysqld.sock
...
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
...
[mysqld]
...
socket          = /var/run/mysqld/mysqld.sock
...

Source code

1
2
3
4
5
6
:~# ls -la /var/run/mysqld/
total 12
drwxr-xr-x  2 mysql root  4096 Jan 16 21:39 .
drwxr-xr-x 13 root  root  4096 Feb 29 00:00 ..
-rw-rw----  1 mysql mysql    5 Jan 16 21:39 mysqld.pid
srwxrwxrwx  1 mysql mysql    0 Jan 16 21:39 mysqld.sock

Source code

1
2
3
4
5
6
~# ls -la /tmp
total 16
drwxrwxrwt  4 root root 4096 Feb 29 19:27 .
drwxr-xr-x 22 root root 4096 Jul 23  2011 ..
drwxrwxrwt  2 root root 4096 Jan 16 21:38 .ICE-unix
drwxrwxrwt  2 root root 4096 Jan 16 21:38 .X11-unix

Similar threads