SSH ఫార్వర్డింగ్ స్థానిక పోర్ట్ 13306 పై వింటుంది, కానీ mysql ఇప్పటికీ స్థానిక డేటాబేస్‌కు కనెక్ట్ అవుతుంది—లేదా దాని స్థానిక సాకెట్ లేదని నివేదిస్తుంది. Unix లో localhost ఇవ్వబడిన MySQL క్లయింట్ TCP బదులు Unix సాకెట్ ఎంచుకోగలదు. పోర్ట్ ఇవ్వడం ఆ ఎంపికను తప్పనిసరిగా మార్చదు.

ఇప్పటికే ఆమోదించబడిన TCP ఫార్వర్డ్ కోసం ప్రోటోకాల్‌ను స్పష్టం చేయండి:

mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
  --user=dbuser --password

వినియోగదారు పేరు కేవలం ఉదాహరణ; పాస్‌వర్డ్ ఎంపిక ఇంటరాక్టివ్ ఇన్‌పుట్ అడుగుతుంది. ఆదేశం Unix సాకెట్ బదులు స్థానిక TCP శ్రోతకు కనెక్ట్ అవుతుంది.

రెండు లాగిన్‌లను వేరుగా ఉంచండి

స్థిర SSH మార్గం ఈ రూపాన్ని కలిగి ఉండవచ్చు:

ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]

గేట్‌వే యొక్క SSH సర్వర్ db.internal:3306 చేరుతుంది. తర్వాత MySQL ఆ బైట్ స్ట్రీమ్ ద్వారా డేటాబేస్ ఖాతాను ప్రామాణీకరిస్తుంది. ఆమోదించిన SSH కీ డేటాబేస్ లాగిన్ ఇవ్వదు, మరియు డేటాబేస్ యొక్క మూల పరిమితులు కనెక్షన్ మార్గం యొక్క ఆ వైపు నుండి వస్తున్నట్లు చూస్తాయి.

ఇది స్థిర TCP అడాప్టర్, mysql ఉపయోగించే SOCKS సెట్టింగ్ కాదు. ఫార్వర్డింగ్ ఎండ్‌పాయింట్‌కు ఒక ముందే నిర్వచించిన లక్ష్యం ఉన్నందున అప్లికేషన్‌కు SOCKS చర్చ అవసరం లేదు.

ఉపయోగించే చోట ఉద్దేశించిన డేటాబేస్ TLS గుర్తింపును మరియు సర్టిఫికేట్ విధానాన్ని నిలుపుకోండి. సాకెట్‌ను loopback కు కనెక్ట్ చేయడం డేటాబేస్ సర్టిఫికేట్‌ను వేరే సేవా పేరుకు చెల్లుబాటు చేయదు. విజయవంతమైన స్థానిక TCP కనెక్షన్ రవాణా ఎంపికను నిర్ణయిస్తుంది, తర్వాతి డేటాబేస్ ప్రామాణీకరణ లేదా TLS తనిఖీలను కాదు.

సంబంధిత వ్యాసాలు