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 ਜਾਂਚਾਂ ਨਹੀਂ।

ਸੰਬੰਧਿਤ ਲੇਖ