MySQL connection over SSH tunnel - how to specify other MySQL server?

前端 未结 4 1575
日久生厌
日久生厌 2020-11-28 02:54

I\'ve got ~50 databases all set up at different host names, with the requirement that I connect to them through an SSH tunnel.

For example:

  • SSH ho

相关标签:
4条回答
  • 2020-11-28 03:10

    When you don't have direct access to mysql-server, you use jump-server.

    From your machine, you connect(ssh) to jump-server and from there you connect to your mysql-server.

    This can be avoided by using ssh- tunneling.

    Suppose your

           jump server is `jump-ip`
           mysql server is `mysql-ip`
           your machine is `machine-ip`
    

    Just open ssh client(Putty in windows or terminal in linux/ios).

    Type:

        ssh -L [local-port]:[mysql-ip]:[mysql-port] [jump-server-user]@[jump-ip]
    

    After this, you can use your localhost and local-port to access mysql-server on the remote machine directly.

    Eg. Your Jdbc url to access mysql database, in that case, will be

    jdbc:mysql://localhost:[local-port]/[database-name]
    

    For Windows Users, Using Putty to connect to remote MySQL Server via Tunneling

    Step1: Enter your Jump server Host/IP in the session tab

    Step2: Go to SSH tab--> Tunnels: Enter Your MySQL server HostName: Port as destination and Source port as your local port where you want to tunnel that service and click on Add

    Step3: Go back to Session tab and click on Open and Enter your credentials, if it is Username/Password based.

    And use same credential as mentioned above:

    jdbc:mysql://localhost:[local-port]/[database-name]
    
    0 讨论(0)
  • 2020-11-28 03:23

    I created a tunnelto the DB using this command

    ssh  -L 10000:localhost:3306  user@<ip addess to connect DB> -N -f
    

    -L is local host port it is user defined u can provide any port number

    between 0 to 65535. 0 to 1023 are reserved.

    whether you are using key based authentication to the server you should

    mention the key like this.

    ssh -i <path of the private key>  -L 10000:localhost:3306  user@<ip addess to connect DB> -N -f
    
    0 讨论(0)
  • 2020-11-28 03:29

    I got a nice blog about how to connect to MySQL using SSH tunnel. It is very well explained here.

    The command to connect to SSH tunnel:

    ssh -L [listening port]:[REMOTE_MYSQL_HOST]:[REMOTE_MYSQL_PORT] [SSH_USER]@[SSH_HOST]
    

    The command to connect to MySQL:

    localhost:[listening port]
    
    0 讨论(0)
  • 2020-11-28 03:31

    Solved it! The thing was to connect to the correct server when creating the tunnel itself - should've seen that one coming.

    ssh -f user@ssh.example.com -L 3307:mysql1.example.com:3306 -N

    Then mysql -h 127.0.0.1 -P 3307 worked as intended. :)

    0 讨论(0)
提交回复
热议问题