Sie sind nicht angemeldet.

Felix1211

Anfänger

  • »Felix1211« ist der Autor dieses Themas

Beiträge: 25

Beruf: Auszubildender Bodenleger

Rootserver vorhanden: Ja

  • Nachricht senden

1

Samstag, 11. Mai 2013, 14:40

MySqL - Cannot Connect

Moin.

Ich möchte meine MySqL Datenbank als Speichermethode für viele Plugins nutzen.
Allerdings funktioniert das leider nicht.




PHP-Quelltext

1
L 05/11/2013 14:35:54: [SMUnable to load extension "dbi./var/run/mysqld/mysqld.sock.ext": /home/..../css/srcds_7/cstrike/addons/sourcemod/extensions/dbi./var/run/mysqld/mysqld.sock.ext.socannot open shared object fileNo such file or directory


Die Datei "dbi./var/run/mysqld/mysqld.sock.ext" existiert nicht, nur /var/run/mysqld/mysqld.sock - Der normale Socket eben.

Wo bekomme ich die extension her oder wie fixe ich dieses Problem ? Der ausführende User hat Rechte in der Datenbank, die Datenbank wird für andere Programme bereits erfolgreich benutzt und das ohne Probleme.

Meine Datebases.cfg

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"Databases"
{
    "driver_default"        "mysql"
    
    // When specifying "host", you may use an IP address, a hostname, or a socket file path
    
    "default"
    {
        "driver"            "/var/run/mysqld/mysqld.sock"
        "host"                "localhost"
        "database"            "css_sm"
        "user"                "root"
        "pass"                "------"
        "timeout"            "5"
        "port"                "3306"
    }


Die gleichen Einträge haben die einzelnen Plugins.

Danke im Voraus.

Gruß
Felix

TeC

Anfänger

Beiträge: 45

Rootserver vorhanden: Ja

  • Nachricht senden

2

Samstag, 11. Mai 2013, 14:43

Ändere mal folgendes:

Quellcode

1
"driver"            "/var/run/mysqld/mysqld.sock"


in

Quellcode

1
"driver"            "mysql"

Felix1211

Anfänger

  • »Felix1211« ist der Autor dieses Themas

Beiträge: 25

Beruf: Auszubildender Bodenleger

Rootserver vorhanden: Ja

  • Nachricht senden

3

Samstag, 11. Mai 2013, 14:50

Quellcode

1
ERROR 2003: Can't connect to MySQL server on 'host_name' (111)


Quellcode

1
2
netstat -ln | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     4284     /var/run/mysqld/mysqld.sock


Das sollte eigentlich richtig gewesen sein, da bei so einem Fehler normal der direkte Pfad zur .sock Datei angegeben werden muss.

Lacrimosa99

Fortgeschrittener

Beiträge: 275

Wohnort: Leipzig

Beruf: IT-Systemintegrator

Rootserver vorhanden: Ja

  • Nachricht senden

4

Samstag, 11. Mai 2013, 18:42

SM nimmt keine externen Socks zumall das auch nicht so sein darf!

Ein GS User darf niemalls aus seinem Jail ausbrechen können.. das sollte jedem Root Inhaber klar sein!

Was die Meldung schreibt ist folgendes: "Ich (der MySQL Server) lasse keine Verbindungen zur DB zu!".. sprich.. du musst MySQL entweder Local laufen lassen (mit auf der Kiste)... oder MySQL eine IP zuweissen, womit man extern Zugreifen darf, was nen Sichherheitsrisiko darstellen kann wenn man so einiges nicht absichhert.

MFG




Felix1211

Anfänger

  • »Felix1211« ist der Autor dieses Themas

Beiträge: 25

Beruf: Auszubildender Bodenleger

Rootserver vorhanden: Ja

  • Nachricht senden

5

Samstag, 11. Mai 2013, 18:46

Der MySqL Server ist auf localhost gehostet.
Und auf Localhost im Verzeichnis /var/run/mysqld/mysqld.sock ist der Socket.
Das bedeutet, dass der Socket nicht extern ist sondern lokal.

Der Zugriff auf die DB ist nur von localhost aus gestattet, das müsste ja aber gehen.

Mir macht das hier eher "Sorgen" bzw ich denke, dass da der Fehler zu suchen ist :
L 05/11/2013 - 14:35:54: [SM] Unable to load extension "dbi./var/run/mysqld/mysqld.sock.ext": /home/..../css/srcds_7/cstrike/addons/sourcemod/extensions/dbi./var/run/mysqld/mysqld.sock.ext.so: cannot open shared object file: No such file or directory

Ich weiß damit nichts anzufangen zumal das Verzeichnis dbi. nicht existiert.

Danke für deine Antwort ;)

Lacrimosa99

Fortgeschrittener

Beiträge: 275

Wohnort: Leipzig

Beruf: IT-Systemintegrator

Rootserver vorhanden: Ja

  • Nachricht senden

6

Samstag, 11. Mai 2013, 19:16

wie schon oben geschrieben, das von TeC ist so standart, da SM keinen Zugriff auf die Socks von MySQL hatt und auch nicht haben darf.

Ich selbst kann dir nur ans Herz legen, beliess dich in die Thematik von Roots und Unix ein.. sonnst hast bald nen problem ;)




Felix1211

Anfänger

  • »Felix1211« ist der Autor dieses Themas

Beiträge: 25

Beruf: Auszubildender Bodenleger

Rootserver vorhanden: Ja

  • Nachricht senden

7

Samstag, 11. Mai 2013, 19:19

Das ist eine normale MySqL Installation, auf dem gleichem Server auf die Foren und andere Programme zugreifen.
Auch Sourcemod hat das auf diesem Weg schon einmal getan, warum das nun nicht mehr so ist, ist meine Frage ;)

Oder ich frage mal anders. Wie kann ich einen Socket so verschieben, dass er mit der Einstellung "mysql" erfasst wird ?
Unter /tmp muss er dann liegen.

Lacrimosa99

Fortgeschrittener

Beiträge: 275

Wohnort: Leipzig

Beruf: IT-Systemintegrator

Rootserver vorhanden: Ja

  • Nachricht senden

8

Samstag, 11. Mai 2013, 19:25

Du verstehst nicht ganz... MySQL Socks gehört dem User MySQL... ein GS User darf niemalls aus seinem Home Verzeichniss raus.

Daher funzt auch keine Einstellung von SM mit direktem Zugriff auf die Socks.

Bitte liess mehr Foren mit solch Themen oder gib deinen Root ab.

Du bist einer von dennen, die ihren Root später als Bot in nem Botnetz wiederfinden, weil se keinen Plan haben.

MFG




Felix1211

Anfänger

  • »Felix1211« ist der Autor dieses Themas

Beiträge: 25

Beruf: Auszubildender Bodenleger

Rootserver vorhanden: Ja

  • Nachricht senden

9

Samstag, 11. Mai 2013, 19:32

Wenn du so clever bist, dann sag mir mal die Lösung.
Wie kann ich die Verbindung herstellen ?
Ich habe in der my.cnf den Socket auf /tmp/mysql.sock geändert und die Datei erstellt.
Der Fehler besteht weiterhin.

fluxX

Super Moderator

Beiträge: 1 056

Wohnort: Österreich

Beruf: IT Systemadministrator

Rootserver vorhanden: Ja

  • Nachricht senden

10

Samstag, 11. Mai 2013, 19:37

Quellcode

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


Greetz

Lacrimosa99

Fortgeschrittener

Beiträge: 275

Wohnort: Leipzig

Beruf: IT-Systemintegrator

Rootserver vorhanden: Ja

  • Nachricht senden

11

Samstag, 11. Mai 2013, 19:41

@ Felix1211

Bitte gib die Kiste ab!

Das kann sich erlich gesagt keiner ansehen was du hier fabrizierst ;)

Zum einen erstellt MySQL beim Start der DB denn Socks und zum anderen soll SM auch keinen Zugriff auf die Socks haben... sollte jeder normall Administrator mit Gesundem Menschenverstand wissen.

MFG




Felix1211

Anfänger

  • »Felix1211« ist der Autor dieses Themas

Beiträge: 25

Beruf: Auszubildender Bodenleger

Rootserver vorhanden: Ja

  • Nachricht senden

12

Samstag, 11. Mai 2013, 19:42

Das hat funktioniert, hätte nicht gedacht, dass ein Link zu dem socket reicht, aber ok :)
Danke ;)

EDIT:

Zitat

Zum einen erstellt MySQL beim Start der DB denn Sock


Eben das wurde nicht gemacht, nur den unter /var/run.
Ich habe gegoogelt und nichts gefunden.
Meiner Meinung nach frage ich freundlich, dein Geflame kannst du dir sparen. Mich freundlich darauf hinweisen, gerne, aber nicht in dem Ton.

Mein MySqL Server ist sicherer als viele andere die nichtmal das secure install Script benutzen, Ports verändern usw. aber wenn ich in den nächsten 2 Jahren in nem Bot Netzwerk bin, bist du der erste der es erfährt ;)

Danke an alle Helfer

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »fluxX« (11. Mai 2013, 20:14)


General

Super Moderator

Beiträge: 1 043

Wohnort: Mönchengladbach

Beruf: Brückenkranführer / Staplerfahrer

Rootserver vorhanden: Nein

  • Nachricht senden

13

Samstag, 11. Mai 2013, 20:02

Ist geklärt, kann somit geschlossen werden!

Ähnliche Themen

Verwendete Tags

MySQL, sourcemod