sql >> Database >  >> RDS >> Mysql

Hoe kan ik een lokale Unix-socket toewijzen aan een inet-socket?

Keer de volgorde van je argumenten om naar socat , en het werkt.

socat -v tcp-l:6666,reuseaddr,fork unix:/var/lib/mysql/mysql.sock

Dit instrueert socat naar

  1. Luister op TCP-poort 6666 (met SO_REUSEADDR )
  2. Wacht om een ​​verbinding te accepteren
  3. Als er een verbinding tot stand is gebracht, vork. Ga bij het kind verder met de onderstaande stappen. Ga in de bovenliggende pagina naar 2.
  4. Open een UNIX-domeinverbinding met de /var/lib/mysql/mysql.sock stopcontact.
  5. Verplaats gegevens tussen de twee eindpunten en sluit af.

Schrijf het andersom

socat -v unix:/var/lib/mysql/mysql.sock tcp-l:6666,reuseaddr,fork

werkt niet, omdat dit socat . instrueert naar

  1. Open een UNIX-domeinverbinding met de /var/lib/mysql/mysql.sock stopcontact.
  2. Luister op TCP-poort 6666 (met SO_REUSEADDR )
  3. Wacht om een ​​verbinding te accepteren
  4. Als er een verbinding tot stand is gebracht, spawn je een worker-kind om gegevens tussen de twee adressen over te dragen.
  5. De ouder blijft verbindingen accepteren op het tweede adres, maar heeft niet langer het eerste adres beschikbaar:het is aan het eerste kind gegeven. Dus vanaf dit punt kan er niets nuttigs meer worden gedaan.


  1. Krijg resultaten van MySQL met behulp van PDO

  2. Afbeelding toevoegen aan blob (mysql) via c#

  3. Deelnemen aan meerdere kolommen

  4. CSV-bestand importeren in Oracle-tabel met behulp van opgeslagen procedure