Ստիպեք MySQL-ին օգտագործել փոխանցված TCP պորտը
Խուսափեք տեղական Unix socket ընտրելուց, երբ MySQL հաճախորդը պետք է միանա SSH TCP փոխանցմամբ։
SSH փոխանցումը լսում է տեղական 13306 պորտին, բայց mysql-ը դեռ միանում է տեղական տվյալների բազային—կամ հաղորդում է, որ իր տեղական socket-ը բացակայում է։ Unix-ում localhost ստացած MySQL հաճախորդը կարող է TCP-ի փոխարեն ընտրել Unix socket։ Պորտ տալը պարտադիր չէ, որ փոխի այդ ընտրությունը։
Գոյություն ունեցող թույլատրված TCP փոխանցման համար արձանագրությունը դարձրեք բացահայտ.
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Օգտանունը միայն օրինակ է. գաղտնաբառի տարբերակը պահանջում է ինտերակտիվ մուտք։ Հրամանը միանում է տեղական TCP լսողին՝ Unix socket-ի փոխարեն։
Առանձին պահեք երկու մուտքերը
Հաստատուն SSH երթուղին կարող է ունենալ այս ձևը.
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Gateway-ի SSH սերվերը հասնում է db.internal:3306-ին։ Այնուհետև MySQL-ը նույնականացնում է տվյալների բազայի հաշիվը այդ բայթային հոսքով։ Ընդունված SSH բանալին չի տալիս տվյալների բազայի մուտք, և տվյալների բազայի աղբյուրի սահմանափակումները տեսնում են, որ կապը գալիս է երթուղու այդ կողմից։
Սա հաստատուն TCP ադապտեր է, ոչ թե mysql-ի օգտագործած SOCKS կարգավորում։ Հավելվածը SOCKS բանակցությունների կարիք չունի, քանի որ փոխանցման վերջնակետն ունի մեկ նախապես սահմանված նպատակ։
Պահպանեք տվյալների բազայի նախատեսված TLS ինքնությունը և վկայագրերի քաղաքականությունը, որտեղ դրանք օգտագործվում են։ Socket-ը loopback-ին միացնելը տվյալների բազայի վկայագիրը վավեր չի դարձնում այլ ծառայության անվան համար։ Հաջող տեղական TCP կապը որոշում է տրանսպորտի ընտրությունը, ոչ թե հետագա տվյալների բազայի նույնականացումը կամ TLS ստուգումները։