从远程客户端访问

例如,如果我们希望使用IP地址192.168.1.2的客户端计算机连接到称为database_name的数据库为user database_user,则在登录数据库服务器后运行下面的命令。

GRANT ALL ON database_name.* TO 'database_user@192.168.1.2' IDENTIFIED BY 'database_user_password';
  • database_name是用户将连接到的数据库的名称。
  • database_user是数据库用户的名称。
  • 192.168.1.2是客户端从中连接的IP。
  • database_user_password是database_user帐户的密码

从运行IP地址连接到服务器:

mysql -u database_user -p database_user_password -h database_server

Ubuntu防火墙设置

如果Ubuntu服务器启用了防火墙,则将要打开与数据库服务器的连接。

示例:打开Ubuntu防火墙,允许IP地址192.168.1.2连接端口3306.

sudo ufw allow from 192.168.1.2 to any port 3306

允许所有IP地址(不安全)连接,然后运行以下命令:

sudo ufw allow 3306/tcp
在Ubuntu上如何允许远程访问MariaDB数据库

配置MariaDB远程访问

默认情况下,对MariaDB服务器的所有远程访问都被拒绝。
要启用远程访问,我们需要修改绑定地址。

例如,要允许所有IPv4地址,需要将绑定地址设置为:0.0.0.0,允许MariaDB服务器接受所有主机IPv4接口上的连接。

在Ubuntu上, MariaDB数据库服务器默认配置文件位于:/etc/mysql/mariadb.conf.d/50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

根据系统,类似的配置文件也可能在下面的位置:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

修改bind-address这行,将默认值127.0.0.1更改为0.0.0.0:

# this is read by the standalone daemon and embedded servers
# this is only for the mysqld standalone daemon
[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
#
# * Fine Tuning

重新启动mariadb服务器。

sudo systemctl restart mariadb.service

检查更改

sudo apt install net-tools
sudo netstat -anp | grep 3306

输出示例:

tcp       0      0 0.0.0.0:3306          0.0.0.0:*        LISTEN         3213/mysqld
日期:2020-07-07 20:55:11 来源:oir作者:oir