Натерајте MySQL да го користи проследениот TCP порт
Избегнете избор на локален Unix socket кога MySQL клиент треба да се поврзе преку SSH TCP проследување.
SSH проследувањето слуша на локалниот порт 13306, но mysql сè уште се поврзува со локалната база на податоци—или пријавува дека му недостига локалниот socket. На Unix, MySQL клиент на кој му е даден localhost може да избере Unix socket наместо TCP. Наведувањето порт не мора нужно да го промени тој избор.
За постоечко одобрено 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]
SSH серверот на портата стигнува до db.internal:3306. Потоа MySQL ја автентифицира сметката на базата на податоци преку тој бајтен тек. Прифатен SSH клуч не дава најава во базата на податоци, а ограничувањата на изворот на базата гледаат дека врската доаѓа од таа страна на рутата.
Ова е фиксен TCP адаптер, а не SOCKS поставка што ја троши mysql. Апликацијата не бара SOCKS преговарање бидејќи крајната точка на проследувањето има една однапред одредена цел.
Зачувајте го предвидениот TLS идентитет на базата и политиката за сертификати таму каде што се користат. Поврзувањето на socket-от со loopback не прави сертификатот на базата валиден за друго име на услуга. Успешна локална TCP врска го решава изборот на транспорт, а не подоцнежната автентикација на базата или TLS проверките.