SSH 터널을 통한 MySQL 연결 - 다른 MySQL 서버를 지정하는 방법
최대 50개의 데이터베이스가 서로 다른 호스트 이름으로 설정되어 있으며 SSH 터널을 통해 연결해야 합니다.
예를 들어 다음과 같습니다.
SSH 호스트:
ssh.example.comMySQL 호스트:
mysql1.example.com
autossh(Debian을 실행하는 웹 서버)를 사용하여 터널을 만들었지만 SSH 터널을 넘어 특정 MySQL 호스트명에 접속하는 방법을 알 수 없습니다.
타자 치기lsof -i -n | egrep '\<ssh\>'터널이 동작하고 있는 것을 확인합니다(포트 3307을 ssh.example.com 포트 3306에 연결).
그래서 내가 노력하면mysql -h 127.0.0.1 -P 3307Connection이 거부되었습니다.MySQL 서버가 아니기 때문에 그다지 이상하지 않습니다.
여러분들께 드리는 질문입니다.
를 지정하려면 어떻게 해야 하나요?mysql1.example.comSSH 터널 생성 후 호스트?모든 곳을 뒤져봤지만 알 수가 없어요.
해결했다!터널 자체를 작성할 때 올바른 서버에 접속하는 것이 중요했습니다.터널이 오는 것을 알고 있어야 합니다.
ssh -f user@ssh.example.com -L 3307:mysql1.example.com:3306 -N
그리고나서mysql -h 127.0.0.1 -P 3307의도한 대로 작동했습니다.:)
직접 접속할 수 없는 경우mysql-server, 를 사용합니다.jump-server.
머신에서 점프 서버에 접속(ssh)하고 거기에서 접속합니다.mysql-server.
이 문제를 회피하려면ssh- tunneling.
예를 들어 다음과 같습니다.
jump server is `jump-ip`
mysql server is `mysql-ip`
your machine is `machine-ip`
ssh 클라이언트만 열면 됩니다(윈도에서는 Putty, Linux/ios에서는 터미널).
유형:
ssh -L [local-port]:[mysql-ip]:[mysql-port] [jump-server-user]@[jump-ip]
이 후에, 다음의 커맨드를 사용할 수 있습니다.localhost그리고.local-port리모트 머신의 mysql-server에 직접 액세스 합니다.
예: 이 경우 mysql 데이터베이스에 액세스하기 위한 Jdbc URL은
jdbc:mysql://localhost:[local-port]/[database-name]
Windows 사용자의 경우 Putty를 사용한 터널링을 통한 리모트 MySQL 서버 접속
순서 1: 세션 탭에 점프 서버의 호스트/IP를 입력합니다.
순서 2: 이동SSH탭-->Tunnels: MySQL 서버 호스트 이름 입력:대상 포트 및 소스 포트를 해당 서비스를 터널링할 로컬 포트로 지정하고Add 
3단계: 세션 탭으로 돌아가Open사용자 이름/비밀번호 기반인 경우 자격정보를 입력합니다.
그리고 위에서 설명한 것과 동일한 자격 증명을 사용합니다.
jdbc:mysql://localhost:[local-port]/[database-name]
SSH 터널을 사용하여 MySQL에 접속하는 방법에 대한 멋진 블로그를 받았습니다.여기에 아주 잘 설명되어 있다.
SSH 터널에 접속하는 명령어:
ssh -L [listening port]:[REMOTE_MYSQL_HOST]:[REMOTE_MYSQL_PORT] [SSH_USER]@[SSH_HOST]
MySQL에 연결하는 명령어:
localhost:[listening port]
이 명령을 사용하여 DB에 대한 터널을 만들었습니다.
ssh -L 10000:localhost:3306 user@<ip addess to connect DB> -N -f
L은 로컬 호스트 포트이며 사용자 정의이며 임의의 포트 번호를 제공할 수 있습니다.
0 ~ 65535 입니다. 0 ~1023은 예약되어 있습니다.
서버에 대한 키 기반 인증을 사용하는지 여부
이렇게 키를 언급해 주세요.
ssh -i <path of the private key> -L 10000:localhost:3306 user@<ip addess to connect DB> -N -f
언급URL : https://stackoverflow.com/questions/18373366/mysql-connection-over-ssh-tunnel-how-to-specify-other-mysql-server
'source' 카테고리의 다른 글
| PHP의 GDlib imagecopyresampled 사용 시 PNG 이미지 투명도를 유지할 수 있습니까? (0) | 2022.12.21 |
|---|---|
| 열이 많은 레코드를 MariaDB Columnstore 테이블에 삽입하는 데 시간이 오래 걸립니다. (0) | 2022.12.21 |
| Xampp 액세스 금지 php (0) | 2022.12.21 |
| 자바스크립트 어레이 정보를 csv(클라이언트 측)로 내보내는 방법 (0) | 2022.12.21 |
| IntelliJ IDEA의 파라미터 목록 내에 있을 때 메서드 호출 후에 세미콜론을 추가하는 방법은 무엇입니까? (0) | 2022.12.21 |