从远程客户端访问
例如,如果我们希望使用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
配置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