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

news/2024/12/21 10:49:48/

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

1 修改服务器配置

vi /etc/my.cnf.d/server.cnf

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

bind-address=0.0.0.0

2 重启数据库

systemctl restart mysql

3 创建数据库登录用户

登录数据库

mysql -u root -p

创建用户

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'remote_password';

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

开启访问数据库的权限

GRANT SELECT ON my_database.* TO 'remote_user'@'%';

刷新权限

FLUSH PRIVILEGES;

退出数据库

exit;

4 设置防火墙

检查防火墙

sudo firewall-cmd --list-all

添加策略

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

重新加载策略

sudo firewall-cmd --reload

5 备注

这里在数据库上为remote_user设置了比较大的可访问IP范围,在防火墙上设置了比较小的范围。最终以比较小的范围为准。
如果追求完美的话,可以在数据库上为remote_user设置同样小的范围。修改方法如下:

登录数据库

mysql -u root -p

撤销之前的权限

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'remote_user'@'%';

重新设置权限

GRANT SELECT ON my_database.* TO 'remote_user'@'10.10.0.0/16';

刷新权限

FLUSH PRIVILEGES;

退出数据库

exit;

测试

远程登录

mysql -h 202.1.12.2 -u remote_user -p -P 3306

问题

备份的问题

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视图的“读”的权限

show full tables;
GRANT SHOW VIEW ON leo_spa.vw_reservation TO 'remote_user'@'%';
FLUSH PRIVILEGES;

http://www.ppmy.cn/news/1556910.html

相关文章

青少年编程与数学 02-004 Go语言Web编程 09课题、访问数据库

青少年编程与数学 02-004 Go语言Web编程 09课题、访问数据库 一、数据库访问1. 安装数据库驱动2. 导入所需包3. 创建数据库连接4. 初始化数据库连接5. 使用GORM进行数据库操作 二、GORM三、GORM框架与Gin框架结合使用1. 初始化项目和安装依赖2. 配置数据库连接3. 定义数据模型4…

【uniapp】实战一人员交接班

前言 最近公司在搞一个功能,实现现场交接班的人知道需要作业前,需要提前检查、准备的工作,然后这个活安排到了我这,临时抱佛脚,赶制了一个粗略的成品。 项目成果展示 首页: 项目结构解析 项目结构介绍: 1、pages/:存放应用的页面文件,包含页面的 Vue 文件、JS 文…

【docker】docker swarm常用命令以及电商平台构建案例

1. 初始化Swarm集群 用于初始化一个Swarm集群&#xff0c;并将当前节点设置为Manager节点。 docker swarm init 用法&#xff1a; docker swarm init --advertise-addr <Manager节点IP>示例&#xff1a; docker swarm init --advertise-addr 192.168.1.100这会将当前节…

C++ 发展历程全解析

引言 C 是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持面向过程的程序设计&#xff0c;还支持面向对象的程序设计&#xff08;OOP&#xff09;和泛型编程的程序设计语言。它由丹麦计算机科学家 Bjarne Stroustrup 于1979年在贝尔实验室开始设计开发。C 的发展经…

Pytorch | 利用BIM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用BIM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集BIM介绍基本原理算法流程特点应用场景 BIM代码实现BIM算法实现攻击效果 代码汇总bim.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行分…

HTTP接口报错详解与解决 200,500,403,408,404

前言&#xff1a; 仅做学习记录&#xff0c;侵删 背景 当后端编写接口时&#xff0c;经常需要对接口使用ApiFox或者PostMan进行测试&#xff0c;此时就会出现各种各样的报错&#xff0c;一般都会包括报错编码&#xff1a;200,400,401等。这个状态码一般是服务器所返回的包含…

c++ 找第一个只出现一次的字符

【题目描述】 给定一个只包含小写字母的字符串&#xff0c;请你找到第一个仅出现一次的字符。如果没有&#xff0c;输出no。 【输入】 一个字符串&#xff0c;长度小于100000。 【输出】 输出第一个仅出现一次的字符&#xff0c;若没有则输出no。 【输入样例】 abcabd【输出样…

小程序中使用 Vue2 + Vuex 实现数据存储与获取

在小程序开发中&#xff0c;数据的存储与获取是一个非常重要的环节。本文将介绍如何在小程序中使用 Vue2 和 Vuex 实现数据的存储与获取。我们将通过一个具体的例子来展示如何在 Vuex 中管理用户信息和机构信息&#xff0c;并在组件中使用这些数据。 项目结构 首先&#xff0…