ઓફિસ સર્વર પરની એપ localhost પર MySQL સાથે જોડાય છે, તમે તે હોસ્ટનામ ડેસ્કટોપ ક્લાયન્ટમાં કોપી કરો છો, અને કનેક્શન કાં તો નિષ્ફળ જાય છે અથવા બીજો ડેટાબેઝ ખોલે છે. VPN એ શબ્દના અર્થમાં કંઈ બદલ્યું નથી: localhost હજી પણ તે મશીન દર્શાવે છે જે ક્લાયન્ટ ચલાવે છે. VPN એ પેકેટ ખસેડ્યા, ઇન્ટરફેસ નહીં. કોઈ રૂટને સ્પર્શ કરતા પહેલાં નક્કી કરો કે લેપટોપે કયા એન્ડપોઇન્ટ સુધી પહોંચવું છે.

પગલું 1: નક્કી કરો કે લેપટોપે કયા એન્ડપોઇન્ટ સુધી પહોંચવું છે

બંને ડિઝાઇન વૈધ છે અને જુદા જુદા પ્રશ્નોના જવાબ આપે છે. સીધી ઍક્સેસનો અર્થ છે કે ડેટાબેઝ એવા ખાનગી સરનામા પર સાંભળે છે જ્યાં ટનલ પહોંચે છે, અને લેપટોપ તે સરનામા સાથે જોડાય છે. ફોરવર્ડ કરેલી ઍક્સેસનો અર્થ છે કે ડેટાબેઝ loopback પર રહે છે અને SSH સેશન પોર્ટને તમારા મશીન સુધી લઈ જાય છે. એક જાણી જોઈને પસંદ કરો, કારણ કે બંને મિશ્ર કરવાથી એવું કનેક્શન બને છે જે ખોટા કારણથી કામ કરે છે.

સીધી ઍક્સેસ માટે, ડેટાબેઝ હોસ્ટનું પોતાનું ખાનગી નામ અથવા સરનામું અને તેનો પોર્ટ જે તેને ચલાવે છે તેની પાસેથી મેળવો. VPN ગેટવેનું સરનામું ડેટાબેઝનું સરનામું નથી, સિવાય કે તે એ જ મશીન હોય. પછી ખાતરી કરો કે શ્રોતા ખરેખર તે ઇન્ટરફેસ સાથે બંધાયેલો છે, કારણ કે ઇન્ટરફેસ તરફનો રૂટ તેના પર શ્રોતા બનાવતો નથી.

પગલું 2: પોર્ટ ફોરવર્ડ કરો જ્યારે શ્રોતા સ્થાનિક રહે તો જ

જો ડેટાબેઝ ફક્ત loopback પર જ રહેવો જોઈએ, તો તેને SSH દ્વારા ફોરવર્ડ કરો અને સ્થાનિક છેડાને પણ loopback સાથે બાંધો. ડાબી બાજુનું બાઇન્ડ સરનામું તમારા લેપટોપનું છે; જમણી બાજુનું લક્ષ્ય SSH સર્વરની બાજુથી અર્થઘટન કરવામાં આવે છે, જેમ OpenSSH સંદર્ભ વર્ણવે છે. આ બે ભૂમિકાઓ ઉલટાવવી એ સામાન્ય કારણ છે કે ફોરવર્ડ કામ કરતું લાગે છે પણ કોઈની સાથે જોડાતું નથી.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:13306:127.0.0.1:3306 [email protected]
ss -ltn 'sport = :13306'

જો SSH ડેટાબેઝ હોસ્ટને બદલે જમ્પ હોસ્ટ પર ઉતરે, તો જમણી બાજુનું loopback જમ્પ હોસ્ટ દર્શાવે છે, અને લક્ષ્ય એવા સરનામા પર બદલવું પડે છે જ્યાં તે હોસ્ટ પહોંચે. ExitOnForwardFailure ફોરવર્ડ સ્થાપિત કરવામાં નિષ્ફળતા પકડે છે, પણ તે સાબિત કરતું નથી કે લક્ષ્ય સાથેના પછીના કનેક્શન સફળ થાય છે. હોસ્ટ-કી ચકાસણી ચાલુ રાખો, અને ફોરવર્ડિંગ પોર્ટને બધા ઇન્ટરફેસ સાથે બાંધીને તમારા આખા LANને આપશો નહીં.

જો ડેટાબેઝ ફક્ત loopback પર જ રહેવો જોઈએ અને તમે SSH વાપરી શકતા નથી તો થોભો. ત્યારે સીધી ઍક્સેસ ખોટી ડિઝાઇન છે, ફરજ પાડવાની કન્ફિગરેશન નહીં.

પગલું 3: ક્લાયન્ટને TCP પર ફરજ પાડો

Unix પર, localhost આપેલો MySQL ક્લાયન્ટ ડિફોલ્ટ રૂપે Unix સોકેટ પસંદ કરે છે, તેથી ફક્ત પોર્ટ બદલવાથી તે એવા સોકેટ શોધતો રહી શકે છે જેનો તમારા ફોરવર્ડ સાથે કોઈ સંબંધ નથી. સ્પષ્ટ TCP પ્રોટોકોલ અને loopback સરનામું વાપરો જેથી ક્લાયન્ટ તમારા ફોરવર્ડિંગ પોર્ટ સાથે કનેક્શન ખોલે.

mysql --protocol=TCP --host=127.0.0.1 --port=13306 --user=DB_USER --password

મૂલ્ય વિનાનું પાસવર્ડ વિકલ્પ ગુપ્તને કમાન્ડ લાઇનમાં મૂકવાને બદલે પૂછે છે, અને આ એ ટેવ છે જે રાખવા યોગ્ય છે. બીજા સાધનો પાસે તે જ ભેદ માટે પોતાનો સ્વિચ છે, અને કેટલાક ડ્રાઇવરો localhostને પણ ખાસ રીતે વાપરે છે. ફ્લેગ પસાર થયો એમ માનવાને બદલે તમારો ક્લાયન્ટ શું કરે છે તે તપાસો. ડેટાબેઝ એકાઉન્ટને પણ એવી પરવાનગી જોઈએ જે સર્વર જે સ્રોત જુએ તેની સાથે મેળ ખાય, અને તે તમારું લેપટોપ નહીં, ફોરવર્ડિંગ હોસ્ટ છે.

જો સાધનને TCP પર ફરજ પાડી શકાતું નથી તો થોભો. પછી બીજો ક્લાયન્ટ વાપરો, અથવા ખાનગી શ્રોતાની સીધી ઍક્સેસ વાપરો.

પગલું 4: તમે ખરેખર કયા એન્ડપોઇન્ટ સુધી પહોંચ્યા તે સાબિત કરો

સર્વરને પૂછો કે તે કનેક્શનને શું માને છે. હોસ્ટનામ, પોર્ટ અને સોકેટ ચલો કહે છે કે તમે TCP દ્વારા આવ્યા કે નહીં અને કયો શ્રોતા જવાબ આપ્યો, અને કનેક્શનની યાદી સર્વરે નોંધેલું સ્રોત સરનામું દર્શાવે છે. તે પુરાવો બીજા રૂટ ફેરફાર કરતાં વધુ ઉપયોગી છે.

mysql --protocol=TCP -h 127.0.0.1 -P 13306 -u DB_USER -p -e "SELECT @@hostname, @@port, @@socket"

તમે કયો એન્ડપોઇન્ટ પ્રયત્ન કર્યો તે નોંધો: સ્થાનિક Unix સોકેટ, તમારો ફોરવર્ડિંગ પોર્ટ અથવા ખાનગી શ્રોતા. આ ત્રણ નિષ્ફળતાઓના ઉપાય જુદા છે, અને ક્લાયન્ટ હજી ખોટા localhost સાથે વાત કરે ત્યારે VPN રૂટ બદલવો વ્યર્થ પરિશ્રમ છે. નોંધમાં SSH પ્રમાણીકરણ અને ડેટાબેઝ પ્રમાણીકરણ પણ અલગ રાખો, કારણ કે ડેસ્કટોપ ક્લાયન્ટથી એકમાંની નિષ્ફળતા બીજામાંની નિષ્ફળતા જેવી લાગે છે. પછી કામ પૂરું થાય ત્યારે ફોરવર્ડ દૂર કરો.

ચેકલિસ્ટ ત્યારે પૂરી થાય છે જ્યારે તમે એન્ડપોઇન્ટ, ક્લાયન્ટ પ્રોટોકોલ, સર્વરે જોયેલું સ્રોત સરનામું અને તેને મંજૂરી આપનારી પરવાનગીનું નામ આપી શકો. ચાર તથ્યો, અને પછીની કનેક્શન સમસ્યા બપોરને બદલે મિનિટો લે છે.

સંબંધિત લેખો