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 ստուգումները։

Առնչվող հոդվածներ