Home > Database > Mysql Tutorial > How to Set Up Remote Access for MySQL on Ubuntu

How to Set Up Remote Access for MySQL on Ubuntu

PHPz
Release: 2023-04-20 13:44:06
Original
2381 people have browsed it

MySQL is a widely used database management system that can be accessed locally or remotely on a server and is often used to develop web applications. However, sometimes we need remote access to MySQL on different machines, so we need to configure MySQL correctly. In this article, we will introduce how to set up remote access to MySQL on Ubuntu 18.04 operating system.

Step 1: Check whether MySQL has remote access enabled

Before starting the configuration, we need to ensure that MySQL has remote access enabled. First, we need to log into the MySQL server and see if remote access is enabled. Open a terminal and enter the following command:

sudo mysql -u root -p
Copy after login

This command will log in to MySQL as the root user. After entering this command, you will be asked for your password. If you enter the correct password, you will enter the MySQL shell, which allows you to access the MySQL server's command line interface. In the MySQL shell, we need to enter the following command to see if remote access is enabled:

SELECT user,authentication_string,host FROM mysql.user;
Copy after login

If remote access is enabled, you should see the following output:

+------------------+-------------------------------+-----------+
| user             | authentication_string         | host      |
+------------------+-------------------------------+-----------+
| root             | *E0AAECBBB187B27AAF667AEC86667 | localhost |
| root             | *E0AAECBBB187B27AAF667AEC86667 | %         |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHAT | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHAT | localhost |
| debian-sys-maint | *456D0C7680DF288F66F7401EABC4B | localhost |
+------------------+-------------------------------+-----------+
Copy after login

The "% here" "Indicates that MySQL allows access by users on any host. If you see this output, then MySQL has remote access enabled.

If you do not see the above output or if you see a different output than the above, it means that MySQL does not have remote access enabled. In this case, you need to configure MySQL to allow remote access.

Step 2: Set up a new remote access account for MySQL

Before enabling remote access, we need to create a new remote access account for MySQL. The reason for this is that MySQL only allows the root user to access the server locally by default, and other users need to use open authorization to access.

In order to set up a new remote access account, we need to execute the following commands in the MySQL shell:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Copy after login

These commands will create a new user named "newuser" and assign all access rights . "%" means that the user can access the MySQL server from any host. You can also specify allowed hosts using specific IP addresses or hostnames. For example, "newuser"@"10.0.0.2" means that access to the MySQL server is only allowed from the host with the IP address "10.0.0.2".

Step 3: Configure the firewall to allow MySQL traffic

Normally, the MySQL server may be protected by a firewall. In order to allow remote access to the MySQL server, you need to open the MySQL port on the firewall (default is 3306). In order to do this, we need to enter the following command:

sudo ufw allow 3306/tcp
Copy after login

This command will open a port named "3306", allowing TCP traffic to pass through the firewall. However, before proceeding with this step, you need to make sure that your firewall is installed and enabled.

Step 4: Update the MySQL configuration file

In order to allow remote login to the MySQL server, you need to set it in the MySQL configuration file. By default, the MySQL configuration file is located at "/etc/mysql/mysql.conf.d/mysqld.cnf". You need to open the file as an administrator and edit a few values ​​as follows:

bind-address = 0.0.0.0
Copy after login

The above command will allow the MySQL server to accept connection requests from any IP address. Note that this may be unsafe as it leaves the MySQL server vulnerable to unauthorized access. If you want to make remote access to MySQL more secure, you should specify the IP addresses or CIDR ranges that allow access.

Step 5: Restart the MySQL server

After modifying the MySQL configuration file, you need to restart the MySQL server for the changes to take effect. To restart MySQL, you can use the following command:

sudo systemctl restart mysql
Copy after login

If you see the following output, it means that the MySQL server has been successfully restarted:

mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-01-21 15:40:22 EST; 17s ago
Copy after login

At this point, you have successfully set up the MySQL server remote access.

Conclusion

MySQL is a powerful database management system that allows you to access it locally or remotely on the server. In this article, we explain how to set up remote access to MySQL on Ubuntu 18.04 operating system. By following the above steps, you can easily perform MySQL remote access between different machines. But please note that you need to pay attention to security and protect your MySQL server from unauthorized access.

The above is the detailed content of How to Set Up Remote Access for MySQL on Ubuntu. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template