Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да съпоставя локален unix сокет към инет сокет?

Обърнете реда на вашите аргументи на socat , и работи.

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

Това инструктира socat до

  1. Слушайте на TCP порт 6666 (с SO_REUSEADDR )
  2. Изчакайте да приемете връзка
  3. Когато се установи връзка, разклонете се. При детето продължете стъпките по-долу. В родителския елемент отидете на 2.
  4. Отворете връзка с UNIX домейн към /var/lib/mysql/mysql.sock контакт.
  5. Прехвърлете данни между двете крайни точки, след което излезте.

Пишете го обратното

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

не работи, защото това инструктира socat до

  1. Отворете връзка с UNIX домейн към /var/lib/mysql/mysql.sock контакт.
  2. Слушайте на TCP порт 6666 (с SO_REUSEADDR )
  3. Изчакайте да приемете връзка
  4. Когато се осъществи връзка, създайте дете работник, за да прехвърлите данни между двата адреса.
  5. Родителят продължава да приема връзки на втория адрес, но вече не разполага с първия адрес:той беше даден на първото дете. Така че от този момент нататък не може да се направи нищо полезно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. дизайн на таблица + SQL въпрос

  2. COUNT по-бърз ли е от изтеглянето на записите и броенето в код?

  3. json_encode не връща нищо

  4. Проверете дали това е дубликат

  5. Модел на списък на съседство срещу модел на вложен набор за йерархични данни на MySQL?