This section describes how to get a secure connection to a remote
MySQL server with SSH. The information was provided by David
Carlson <dcarlson@mplcomm.com>
.
Install an SSH client on your Windows machine. As a user, the
best nonfree one I have found is from
SecureCRT
from
http://www.vandyke.com/. Another option is
f-secure
from
http://www.f-secure.com/. You can also find
some free ones on Google
at
http://directory.google.com/Top/Computers/Internet/Protocols/SSH/Clients/Windows/.
Start your Windows SSH client. Set Host_Name =
.
Set
yourmysqlserver_URL_or_IP
userid=
to log in to your server. This your_userid
userid
value
might not be the same as the user name of your MySQL account.
Set up port forwarding. Either do a remote forward (Set
local_port: 3306
, remote_host:
,
yourmysqlservername_or_ip
remote_port: 3306
) or a local forward (Set
port: 3306
, host:
localhost
, remote port: 3306
).
Save everything, otherwise you will have to redo it the next time.
Log in to your server with the SSH session you just created.
On your Windows machine, start some ODBC application (such as Access).
Create a new file in Windows and link to MySQL using the ODBC
driver the same way you normally do, except type in
localhost
for the MySQL host server, not
yourmysqlservername
.
At this point, you should have an ODBC connection to MySQL, encrypted using SSH.
User Comments
There is a Windows port-forwarding-only (no terminal emulation capabilities) SSH client available at:
http://www.fuji-climb.org/pf/
It's a nice lightweight solution for remote database access.
I frequently use the small and freeware PuTTY client with lots of options, and which has also a command-line version 'Plink', suitable for scripting.
See: http://www.chiark.greenend.org.uk/~sgtatham/putty/
Joachim.
Manage mysql via SSH from your windows machine with MySQLcc
You need:
MySQLcc: http://www.mysql.com/downloads/mysqlcc.html
Putty: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
And a hosting provider with SSH enabled!
Open putty.exe.
Specify the host name or IP of your site. Click on the "SSH" radio button.
Go to the settings Connection > SSH > Tunneling
Add new forwarded port:
Source port: 3306
Destination: localhost:3306
Click on the "Local" radio button.
Click "Add"
Go back to Session settings, type a name for Saved session and click "Save". Then click "Open"
You will be asked for login and password. Enter them.
On MySQLControlCenter, go to File > New, type a Name for your connection. Then at host name type
localhost
Then your user name and password in the following fields.
Click "Add", then double click on the new server icon to connect!
Manuel Razzari wrote good instructions to connect to the remote mysql server using putty server.
At my computer I have local instalation of mysql and mysqld uses the 3306 port so I have to choose different port for mysql connection:
My settings for example are:
Add new forwarded port:
Source port: 4000
Destination: localhost:3306
Click on the "Local" radio button.
Click "Add
When you conect to mysql client use localhost:4000 port.
Source port is arbitrarry port greater then 1024 only take in account that some application could use.
There are several third-party MySQL clients that allow for SSH connections without ODBC or other sorts of exotic workarounds, most notably SQLyog Enterprise in my opinion.
Add your own comment.