Your database server contains tables full of important data. Querying this data graphically on your local computer is the easiest way to interact with your database. But connecting remotely to your database server usually entails configuring MySQL to listen on every interface, restricting access to port 3306
with your firewall, and configuring user and host permissions for authentication. And allowing connections to MySQL directly can be a security concern.
Using tools like HeidiSQL for Windows, Sequel Pro for macOS, or the cross-platform MySQL Workbench, you can connect securely to your database over SSH, bypassing those cumbersome and potentially insecure steps. This brief tutorial will show you how to connect to a remote database using MySQL Workbench.
To complete this tutorial, you will need:
You will also need the following information about the database server you plan to use:
22
.Once you’ve installed MySQL Workbench on your computer, launch the program. Create a new connection by clicking the + icon next to MySQL Connections in the main window.
You’ll be presented with the Connect to Database window, which looks like the follwing figure:
To create the connection, enter the following details:
database_for_myapp
or something more descriptive.Once you’ve connected to your database, you can view the details of the MySQL instance, including database status, current connections, and database configuration, as well as users and permissions. MySQL Workbench also supports importing and exporting of MySQL dump files so you can quickly back up and restore your database.
You will find your databases listed under the SCHEMAS area of the left navigation bar. The dropdown arrow next to each database will allow you to expand and navigate your databases tables and objects. You can easily view table data, write complex queries, and edit data from this area of MySQL Workbench, as shown in the following figure:
To manage your connections, select the Database menu and choose the Connect to Database option, or press ⌘U
on the Mac or CTRL+U
on Windows and Linux systems. To connect to a different database, create a new connection using the same process you used for your first connection.
Using MySQL Workbench to access your remote MySQL database through an SSH tunnel is a simple and secure way to manage your databases from the comfort of your local computer. Using the connection method in this tutorial, you can bypass multiple network and security configuration changes normally required for a remote MySQL connection.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
For anyone who has working SSH connection but still get connection errors after following the above. These two things helped me fix:
When your key file was generated by Putty it won’t work with Workbench. You have to import it to Puttygen once again and then export it to the OpenSSH format. Then you can use this file at Workbench (you do not have to remove the passphrase in order for it to work).
Worked for me when I did it, hope it works for you!
In the past I’ve always used the LAMP Stack and phpMyAdmin for all of my projects. However, I just started using LEMP instead and encountered problems getting phpMyAdmin to work with the new tech stack. So I decided to give MySQL Workbench a try, but ended up running into a whole bunch of problems getting it set up.
However, now that I have everything all figured out, I figured I should leave a comment with some information that is missing from this article that was critical for me getting this all setup:
If you are using the LEMP stack on DigitalOcean, you will likely need to create a username for a database administrator to access MySQL. So you’ll still use ‘root’ for your ssh username, but you will need to create a username to provide as the MySQL database administrator. When using MySQL Workbench, you’ll be asked for BOTH names.
Setting up a username (and password) for a database administrator is easy. Log into your server via the terminal using ssh, and then simply enter in a few commands:
REFERENCE: https://stackoverflow.com/questions/5755819/lost-connection-to-mysql-server-at-reading-initial-communication-packet-syste/38070979#38070979
thank you for this tutorial Did you now how to connect into database in java program?
Make sure you change the default bind-address in MySQL settings in your droplet.
A few other sources I found online said to change this in the
my.cnf
file located in/etc/mysql/
however when I looked it was not located there.Navigate to the
/etc/mysql/mysql.conf.d/
directory and edit the mysqld.cnf file by entering the following commandnano mysqld.cnf
(May need to use sudo command, can’t remember)Change the line that says
bind-address = 127.0.0.1
tobind-address = 0.0.0.0
This will allow your server to accept connections other IP addresses.
Hope this helps others
Tried this out, but when I try to test the connection I get:
Looking in my logs: (obfuscated my IP)
Anybody else find a solution in this case?
I have same problem. Not connecting to remote server. Do I have to enable remote connection On on mysql database?
Hello, it did not work!!! I have run many tutorials, but the same error: lost connection to mysql server at ‘reading initial communication packet’ system error 0 I do not know what to do to fix it. I need help!