Home > Database > Mysql Tutorial > body text

How to set up MySQL remote access on Ubuntu

WBOY
Release: 2023-06-02 22:34:15
forward
3194 people have browsed it

Step 1: Check whether MySQL has remote access enabled

Before starting the configuration, we need to ensure that MySQL has remote access enabled. We need to log in to the MySQL server first and confirm whether 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 order to check whether the MySQL shell has remote access enabled, you need to type the following command

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 means MySQL allows it User access from any host. If you see this output, then MySQL has remote access enabled.

If you don't see the output above, or you see a different output than above, then this 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

To enable remote access to MySQL, we need to create a new remote access account first. MySQL only allows the root user to access the server locally by default. Other users need to use public authorization to access, which is why this is done.

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. To allow remote access to the MySQL server, the MySQL port needs to be opened 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 allow TCP traffic through the firewall, opening the port named "3306". Before you perform this step, make sure your firewall is installed and enabled.

Step 4: Update the MySQL configuration file

To allow remote login to the MySQL server, you need to configure 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 administrator and edit a few values ​​as follows:

bind-address = 0.0.0.0
Copy after login

MySQL server will accept connection requests from any IP address, use the following command:. This requires attention because it can make 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 changing 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.

The above is the detailed content of How to set up MySQL remote access on Ubuntu. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!