Was ist die Socket-Deklaration für, in Ruby on Rails database.yml?

8

Was ist die Verwendung der Socket-Deklaration in config / database.yml?

Beispielcode:

%Vor%

Meine App funktioniert, ob diese Zeile kommentiert ist oder nicht. Also wofür ist es? Welche Gründe kann ich haben, um es zu verlassen, es zu kommentieren oder seinen Wert zu ändern?

    
Daniel R 05.01.2011, 21:58
quelle

3 Antworten

12

Wenn zwei Programme über das Netzwerk miteinander kommunizieren möchten, öffnet ein Programm möglicherweise eine TCP-Verbindung (ein "Socket") mit der anderen. Das erste Programm muss die IP-Adresse des zweiten Computers und den Port kennen, auf dem das Programm wartet.

Wenn unter Linux zwei Programme auf demselben Computer miteinander kommunizieren möchten, können sie dennoch eine TCP-Verbindung herstellen. Sie können aber auch eine Verbindung über eine "Socket-Datei" herstellen. Linux macht die Socket-Datei-API der TCP-API sehr ähnlich. Es ist also keine große Sache, ein Programm zu aktualisieren, das bereits über TCP über das Netzwerk kommuniziert, um auch die Kommunikation über Socket-Dateien zu unterstützen. Socket-Dateien sind schneller als TCP, funktionieren aber nur, wenn sich beide Programme auf demselben Computer befinden.

    
yfeldblum 05.01.2011, 22:15
quelle
5

MySQL kommuniziert mit zwei Methoden auf Unix-Systemen, tcp / ip und Domain-Sockets. Durch Angeben des Sockets Rails oder besser der Datenbanktreiber verwendet den Socket anstelle einer Netzwerkverbindung. Es kann schneller sein, den Sockel zu verwenden, aber YMMV.

Ссылка

    
noodl 05.01.2011 22:02
quelle
0

Ich verschwendete einen ganzen Nachmittag wegen eines Sockets, der in meiner Datenbank.yml angegeben war - die Datenbankspezifikationen für die Testumgebung wurden einfach nicht geparst. Wenn Sie also ein Problem damit haben, dass Ihre Testdatenbank nicht erreichbar ist, obwohl alles in Ordnung zu sein scheint, entfernen Sie die Socket-Spezifikation.

    
vivec 26.01.2011 13:32
quelle