Laat MySQL die deurgegee TCP-poort gebruik
Vermy die keuse van 'n plaaslike Unix-socket wanneer 'n MySQL-kliënt deur 'n SSH TCP-deurgee moet verbind.
Die SSH-deurgee luister op plaaslike poort 13306, maar mysql verbind steeds met die plaaslike databasis—of meld dat sy plaaslike socket ontbreek. Op Unix kan 'n MySQL-kliënt wat localhost kry, 'n Unix-socket eerder as TCP kies. Die verskaffing van 'n poort verander nie noodwendig daardie keuse nie.
Vir 'n bestaande goedgekeurde TCP-deurgee, maak die protokol eksplisiet:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Die gebruikersnaam is illustratief; die wagwoord-opsie versoek 'n interaktiewe opdrag. Die opdrag verbind met die plaaslike TCP-luisteraar in plaas van 'n Unix-socket.
Hou die twee aanmeldings apart
'n Vaste SSH-roete kan hierdie vorm hê:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Die gateway se SSH-bediener bereik db.internal:3306. MySQL verifieer dan die databasisrekening deur daardie greepstroom. 'n Aanvaarde SSH-sleutel verleen nie 'n databasis-aanmelding nie, en databasisbronbeperkings sien die verbinding vanaf daardie kant van die roete aankom.
Dit is 'n vaste TCP-adapter, nie 'n SOCKS-instelling wat deur mysql verbruik word nie. Die toepassing het geen SOCKS-onderhandeling nodig nie, want die deurgee-eindpunt het een voorafbepaalde teiken.
Behou die beoogde databasis-TLS-identiteit en sertifikaatbeleid waar dit gebruik word. Om die socket aan loopback te koppel maak nie 'n databasis-sertifikaat geldig vir 'n ander diensnaam nie. 'n Suksesvolle plaaslike TCP-verbinding beslis die vervoerkeuse, nie die latere databasis-verifikasie of TLS-kontroles nie.