VPN வழியாக MySQL localhost: இது இன்னும் உள்ளூர் செயல்முறையையே குறிக்கிறது
ஆப் localhost என அழைக்கும் தரவுத்தளம் சேவையகத்தில் உள்ளது, உங்கள் மடிக்கணினியில் அல்ல. தனிப்பட்ட கேட்பான் அல்லது SSH அனுப்பலைப் பயன்படுத்தி, பின்னர் கிளையண்டை TCP-க்கு கட்டாயப்படுத்துங்கள்.
அலுவலக சேவையகத்தில் உள்ள ஆப் 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 அங்கீகாரத்தையும் தரவுத்தள அங்கீகாரத்தையும் தனித்தனியாக வைத்திருங்கள், ஏனெனில் டெஸ்க்டாப் கிளையண்டிலிருந்து ஒன்றின் தோல்வி மற்றொன்றின் தோல்வி போலத் தெரிகிறது. பின்னர் வேலை முடிந்ததும் அனுப்பலை அகற்றுங்கள்.
முனை, கிளையண்ட் நெறிமுறை, சேவையகம் கண்ட மூல முகவரி மற்றும் அதை அனுமதித்த அனுமதி ஆகியவற்றைக் கூற முடிந்தால் பட்டியல் முடிகிறது. நான்கு உண்மைகள், அடுத்த இணைப்புப் பிரச்சினை மதியத்திற்குப் பதிலாகச் சில நிமிடங்களில் தீரும்.