在CentOS 7系统中远程访问MariaDB数据库是一个常见的需求,尤其是在需要跨服务器管理数据或进行分布式开发时,MariaDB作为MySQL的一个分支,继承了其灵活性和易用性,但在远程连接配置上仍需注意几个关键步骤,以确保安全性和稳定性。

安装MariaDB服务
确保系统中已安装MariaDB服务,通过yum包管理器可以轻松完成安装,执行以下命令更新系统包列表并安装MariaDB:
sudo yum update -y sudo yum install mariadb-server mariadb -y
安装完成后,启动MariaDB服务并设置开机自启:
sudo systemctl start mariadb sudo systemctl enable mariadb
配置MariaDB远程访问
默认情况下,MariaDB仅允许本地连接,要启用远程访问,需修改mysql数据库中的user表,为特定用户授予远程权限,首先登录MariaDB控制台:
mysql -u root -p
输入root密码后,执行以下SQL语句为远程用户(如remote_user)授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;
这里表示允许任何IP地址连接,生产环境中建议限制为特定IP以提高安全性。

配置防火墙规则
CentOS 7默认使用firewalld防火墙,需开放MariaDB默认端口3306,执行以下命令:
sudo firewall-cmd --permanent --add-service=mysql sudo firewall-cmd --reload
如果需要限制特定IP访问,可使用:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="mysql" accept'
测试远程连接
在另一台机器上使用MySQL客户端工具(如mysql命令或Navicat)测试连接:
mysql -h [服务器IP] -u remote_user -p
输入密码后若能成功登录,说明配置生效。
安全加固建议
- 禁用root远程登录:避免直接使用root用户远程连接,创建专用管理账户。
- 使用SSL加密:在MariaDB配置文件中启用SSL,确保数据传输安全。
- 定期更新密码:为数据库用户设置强密码并定期更换。
常见问题排查
若连接失败,检查以下几点:

- 确认MariaDB服务运行状态:
systemctl status mariadb。 - 验证防火墙规则是否正确应用:
firewall-cmd --list-all。 - 检查MariaDB日志:
/var/log/mariadb/mariadb.log,定位错误原因。
FAQs
Q1: 如何修改MariaDB的默认端口?
A1: 编辑/etc/my.cnf文件,在[mysqld]段落添加port = 3307(自定义端口号),重启MariaDB服务后生效,同时需在防火墙中开放新端口。
Q2: 远程连接时提示“Host is not allowed to connect”如何解决?
A2: 此错误表明用户未授权远程访问,需登录MariaDB控制台,重新执行GRANT语句为用户授权,确保user表中Host字段为或目标IP。