Bëje MySQL të përdorë portin TCP të përcjellë
Shmangni zgjedhjen e një soketi Unix lokal kur një klient MySQL duhet të lidhet përmes një përçimi SSH TCP.
Përçimi SSH dëgjon në portin lokal 13306, por mysql vazhdon të lidhet me bazën e të dhënave lokale—ose raporton se soketi i tij lokal mungon. Në Unix, një klient MySQL që i jepet localhost mund të zgjedhë një soket Unix në vend të TCP. Dhënia e një porti nuk e ndryshon domosdoshmërisht këtë zgjedhje.
Për një përçim TCP të miratuar ekzistues, bëjeni protokollin të qartë:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Emri i përdoruesit është ilustrues; opsioni i fjalëkalimit kërkon input interaktiv. Komanda lidhet me dëgjuesin lokal TCP në vend të një soketi Unix.
Mbani dy hyrjet të ndara
Një rrugë fikse SSH mund të ketë këtë formë:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Serveri SSH i portës arrin db.internal:3306. Më pas MySQL vërteton llogarinë e bazës së të dhënave përmes atij rryme bajtësh. Një çelës SSH i pranuar nuk jep hyrje në bazën e të dhënave, dhe kufizimet e burimit të bazës shohin lidhjen duke ardhur nga ajo anë e rrugës.
Ky është një përshtatës fiks TCP, jo një cilësim SOCKS i konsumuar nga mysql. Aplikacioni nuk ka nevojë për negociim SOCKS sepse pika e fundit e përçimit ka një objektiv të paracaktuar.
Ruani identitetin e synuar TLS të bazës së të dhënave dhe politikën e certifikatave aty ku përdoren. Lidhja e soketit me loopback nuk e bën një certifikatë baze të dhënash të vlefshme për një emër tjetër shërbimi. Një lidhje lokale TCP e suksesshme vendos zgjedhjen e transportit, jo vërtetimin e mëvonshëm të bazës së të dhënave ose kontrollet TLS.