允许某段网络访问Linux服务器上的MariaDB

在Linux服务器上安装了MariaDB,默认情况下,只允许本机访问。在某些特殊的情况下,要允许外部访问。具体操作流程如下:

1 修改服务器配置

bash 复制代码
vi /etc/my.cnf.d/server.cnf

取消下面的注释,以便允许外来的主机访问。

bash 复制代码
bind-address=0.0.0.0

2 重启数据库

bash 复制代码
systemctl restart mysql

3 创建数据库登录用户

登录数据库

bash 复制代码
mysql -u root -p

创建用户

bash 复制代码
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'remote_password';

设置密码的时候,建议在键盘上乱敲,不要有啥规律,然后记下来。

开启访问数据库的权限

bash 复制代码
GRANT SELECT ON my_database.* TO 'remote_user'@'%';

刷新权限

bash 复制代码
FLUSH PRIVILEGES;

退出数据库

bash 复制代码
exit;

4 设置防火墙

检查防火墙

bash 复制代码
sudo firewall-cmd --list-all

添加策略

bash 复制代码
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.0.0/16" port port=3306 protocol=tcp accept'

重新加载策略

bash 复制代码
sudo firewall-cmd --reload

5 备注

这里在数据库上为remote_user设置了比较大的可访问IP范围,在防火墙上设置了比较小的范围。最终以比较小的范围为准。

如果追求完美的话,可以在数据库上为remote_user设置同样小的范围。修改方法如下:

登录数据库

bash 复制代码
mysql -u root -p

撤销之前的权限

bash 复制代码
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'remote_user'@'%';

重新设置权限

bash 复制代码
GRANT SELECT ON my_database.* TO 'remote_user'@'10.10.0.0/16';

刷新权限

bash 复制代码
FLUSH PRIVILEGES;

退出数据库

bash 复制代码
exit;

测试

远程登录

bash 复制代码
mysql -h 202.1.12.2 -u remote_user -p -P 3306

问题

备份的问题

bash 复制代码
2024/12/18 16:21:41	
[Error]	Failed to backup "my_database" database with "Full" backup type: mysqldump: 
[Warning] Using a password on the command line interface can be insecure.
mysqldump: Couldn't execute 'show create table `vw_reservation`': 
SHOW VIEW command denied to user 'remote_user'@'202.11.1.15' for table 'vw_reservation' (1142)

解决办法:

给予用户vw_reservation视图的"读"的权限

bash 复制代码
show full tables;
GRANT SHOW VIEW ON leo_spa.vw_reservation TO 'remote_user'@'%';
FLUSH PRIVILEGES;
相关推荐
chenyuhao20242 分钟前
Linux网络编程:HTTP协议
linux·服务器·网络·c++·后端·http·https
duration~4 分钟前
IPv6 详解
网络·网络协议·ip
广东大榕树信息科技有限公司27 分钟前
动环监控如何有效提升机房环境管理的可靠性与响应速度?
运维·网络·物联网·国产动环监控系统·动环监控系统
txzz888832 分钟前
CentOS-Stream-10 搭建NTP服务器(一)
linux·服务器·centos·ntp服务
冉佳驹1 小时前
Linux ——— 虚拟地址、页表、物理地址与 waitpid 和进程管理中的核心概念和技术
linux·waitpid·进程程序替换·exit·地址空间·非阻塞轮询·exec系列
先跑起来再说1 小时前
Go 语言的 Mutex 底层实现详解:状态位、CAS、自旋、饥饿模式与信号量
服务器·后端·golang
最后一个bug2 小时前
CPU的MMU中有TLB还需要TTW的快速查找~
linux·服务器·系统架构
zhengfei6112 小时前
【POC漏洞】XXX网上阅卷系统 monitor 未授权访问
网络·安全·web安全
小杨同学493 小时前
Linux 从入门到实战:常用指令与 C 语言开发全指南
linux
福尔摩斯张3 小时前
Linux的pthread_self函数详解:多线程编程中的身份标识器(超详细)
linux·运维·服务器·网络·网络协议·tcp/ip·php