sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag mappa en lokal unix-socket till en inet-socket?

Vänd ordningen på dina argument till socat , och det fungerar.

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

Detta instruerar socat till

  1. Lyssna på TCP-port 6666 (med SO_REUSEADDR )
  2. Vänta med att acceptera en anslutning
  3. När en anslutning upprättas, gaffel. Fortsätt med stegen nedan i barnet. I föräldern, gå till 2.
  4. Öppna en UNIX-domänanslutning till /var/lib/mysql/mysql.sock uttag.
  5. Överför data mellan de två slutpunkterna och avsluta.

Skriver det tvärtom

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

fungerar inte, eftersom detta instruerar socat till

  1. Öppna en UNIX-domänanslutning till /var/lib/mysql/mysql.sock uttag.
  2. Lyssna på TCP-port 6666 (med SO_REUSEADDR )
  3. Vänta med att acceptera en anslutning
  4. När en anslutning skapas, skapa ett arbetarbarn för att överföra data mellan de två adresserna.
  5. Föräldern fortsätter att acceptera anslutningar på den andra adressen, men har inte längre den första adressen tillgänglig:den gavs till det första barnet. Så inget användbart kan göras från och med nu.


  1. MySQL:Hur tar jag reda på vilka tabeller som refererar till en specifik tabell?

  2. mysql delete, autoincrement

  3. hitta orsaker till mysql dödläge

  4. laravel dolda fält på skick