At some point, you’re going to need to connect to a MySQL 8 database remotely to manage your databases. Here’s how to make this possible.
Recently, I was tasked to add a MySQL database GUI for a client and came up against an issue where the database server wasn’t properly configured to accept remote connections. This can be a bit tricky to pull off, but it’s not impossible.
I’m going to walk you through the process of configuring MySQL 8 to connect to it remotely as a user with access to all databases. Understand that this is a significant security risk, so you want to make absolutely certain that not only is your LAN secure, but you’re using very strong passwords for the MySQL users — which you should be doing anyway.
With that said, let’s get this configuration up and running.
To make this connection, you’ll need a running instance of MySQL and either a Linux machine to test the connection or any number of MySQL clients that allow for remote connection setup. You’ll also need a user on the MySQL server with sudo privileges.
SEE: Here’s a refresher on how to configure your MySQL root password.
That’s it. Let’s make some database magic.
The first thing we must do is configure MySQL for remote connections. To do this:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 127.0.0.1bind-address = 0.0.0.0sudo systemctl restart mysqlAt this point, MySQL is open for remote connections, but you’ve yet to create a user for access.
Next, create a new MySQL user. We’re going to call this user dbadmin. This user cannot be called “root” because, depending on how the MySQL server is configured, it may not be possible to add an account with remote access that is named “root.”
To create a new MySQL user:
sudo mysql -u root -pcreate user 'dbadmin'@'%' identified by 'PASSWORD';grant create user, reload on *.* to 'dbadmin'@'%';grant all on *.* to 'dbadmin'@'%' with grant option;grant create, select on *.* to 'dbadmin'@'%';FLUSH PRIVILEGES;exitThe command sequence should look similar to what is shown below (Figure A).

If you have access to another Linux machine with MySQL installed, you can test the connection by running this command on the second machine:
mysql -u dbadmin -h SERVER -p
where SERVER is the IP address or domain of the MySQL hosting server.
When prompted for the password, type the strong password you created for the new dbadmin user. If you’re testing this from a second Linux machine, you should see something similar to Figure B.

You should be granted access to the MySQL console, where you can manage any of the databases on the system.
Once the system tests out fine, you can then connect to that database server with a graphical user interface tool such as Beekeeper Studio or Adminer.
With Beekeeper studio, create a new connection, select MySQL as the connection type and fill out the following details (Figure C):
SHOW DATABASES;.
Once you’ve filled out the details, click Test to make sure the connection works. After getting the OK, give the connection a name, and click Save. Finally, click Connect, and the GUI should successfully connect to your remote database (Figure D).

Congratulations! Not only have you configured MySQL 8 for remote connections, you’ve also created a user with access to all databases and connected to the remote server with both the command line and a GUI. Time to don your database admin hat and get to work.
PREMIUM: Take advantage of this back-end developer hiring kit.
Now that you’ve learned how to set up remote connections for MySQL 8, here’s how you can connect the MySQL database with LibreOffice, DBeaver and Grafana.
Phil is usually seen making things work together that shouldn’t be, but need to be. He describes himself as a marriage counselor for software and other technology systems. He appropriated this moniker way back in college as he first experimented with making disparate software work together back then, and he continues doing so in his over 20 years of professional IT experience now. When Phil isn’t making disagreeable software work in a cooperative fashion, he’s teaching things like Python and Linux Administration, as well as dabbling in new technology fields like cybersecurity and virtualization. He’s always looking for emerging technology trends to dabble in.