远程访问mysql数据库的正确打开方式

为了安全,mysql数据库默认只能本机登录,但是在有些时候,我们会有远程登录mysql数据库的需求,这时候应该怎么办呢? 

远程访问mysql数据,需要两个条件:

首先需要mysql服务器将服务绑定到0.0.0.0ip地址,这样才能允许远程机器登录,否则从网络层面就是不允许远程访问的。

 

其次需要在数据库里放开登录用户的远程访问权限,一般放开访问者的单个源ip地址,也可以全放开。当然全放开不如只放开单个ip安全。

下面是具体操作实例,为mysql添加远程访问权限:

1 mysql服务器打开远程访问权限

根据不同的版本,修改mysql.conf 或my.cnfmy.ini等文件,比如针对Ubuntu22.04版本,具体为在/etc/mysql/mysql.conf.d/mysqld.conf文件中,修改

# bind-address          = 127.0.0.1
bind-address            = 0.0.0.0

将绑定ip从127.0.0.1修改成0.0.0.0,即可放开服务器远程访问权限。 

2 登录的用户给它远程访问ip权限

具体为创建跟访问源ip绑定的用户,然后赋予它访问某个数据库(如auth库)的权限。:

CREATE USER 'trinity'@'192.168.1.12' IDENTIFIED BY 'trinity';GRANT ALL PRIVILEGES ON auth.* TO 'trinity'@'192.168.1.12' WITH GRANT OPTION;

如果是放开所有ip,那么就在原来写ip地址的地方写“%”,代表所有ip:

CREATE USER 'trinity'@'%' IDENTIFIED BY 'trinity';GRANT ALL PRIVILEGES ON auth.* TO 'trinity'@'%' WITH GRANT OPTION;

为ip地址访问加上权限实践操作

首先看一下数据库中原账户的权限

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> SELECT host, user FROM user WHERE user='trinity';
+-----------+---------+
| host      | user    |
+-----------+---------+
| localhost | trinity |
+-----------+---------+
1 row in set (0.01 sec)

host设为localhost,证明该用户默认只能从localhost登录

在增加'trinity'@'192.168.1.2'用户欧,显示:

mysql> CREATE USER 'trinity'@'192.168.1.2' IDENTIFIED BY 'trinity';
Query OK, 0 rows affected (0.11 sec)mysql> SELECT host, user FROM user WHERE user='trinity';
+-------------+---------+
| host        | user    |
+-------------+---------+
| 192.168.1.2 | trinity |
| localhost   | trinity |
+-------------+---------+
2 rows in set (0.00 sec)

可见已经为trinity添加了从192.168.1.2这个机器登录的权限

进行测试

使用下面python语句可以mysql数据库:

import pymysql  # 配置数据库连接  
config = {  'host': '192.168.1.12',  'user': 'trinity',  'password': 'trinity',  'database': 'auth',  'charset': 'utf8mb4',  'cursorclass': pymysql.cursors.DictCursor  
}  try:  # 建立数据库连接  connection = pymysql.connect(**config)  

测试通过!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/389656.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】类加载器和双亲委派模型

什么是类加载器 如果想要了解什么是类加载器就需要清楚一个Java文件是如何运行的。我们可以看下图: 首先要知道操作系统是不能直接运行Java文件的,所以就需要通过JVM将Java文件转换为操作系统可以运行的文件类型,步骤如下: 类加…

入门必读:11个最受欢迎的UI设计网页软件详细评测

即时设计首发UI设计网页软件的轻量化和在线协作已成为当前UI设计网页软件的发展方向。网页UI设计不容易,实用的网页UI制图软件更难找到。随着网络的快速发展,网站迅速崛起,网页UI设计也很流行。UI设计网页软件即时设计是一种协同设计工具&…

MySQL是怎样运行的——第2章 启动选项和系统变量

文章目录 2.1 在命令行上使用选项2.1.1 选项的长形式和短形式 2.2 配置文件中使用选项2.2.1 配置文件的路径2.2.2 配置文件的内容2.2.3 配置文件的优先级 2.3 命令行和配置文件中启动选项的区别2.4 系统变量2.4.1 简介2.4.2 查看系统变量2.4.3 设置系统变量2.4.4 启动选项和系统…

PyQt5新手教程(五万字)

文章目录 PyQt界面开发的两种方式:可视化UI 编程式UI一、PyQt 简介二、PyQt 与 Qt 的蒙娜丽莎三、PyQt 布局管理器(Layout Manager)3.1、简介3.1.1、布局管理器的定义3.1.2、布局管理器的类型3.1.3、布局管理器的使用方法 3.2、项目实战3.2.…

查物流信息用什么软件

在电子商务日益繁荣的今天,快递物流信息的查询成为了我们日常生活中不可或缺的一部分。无论是网购达人还是商家,都需要随时掌握货物的物流动态。然而,如何快速、准确地查询物流信息却是一个令人头疼的问题。今天,我将为大家介绍一…

AI大模型需要什么样的数据?

数据将是未来AI大模型竞争的关键要素 人工智能发展的突破得益于高质量数据的发展。例如,大型语言模型的最新进展依赖于更高质量、更丰富的训练数据集:与GPT-2相比,GPT-3对模型架构只进行了微小的修改,但花费精力收集更大的高质量…

C++11深度剖析

目录 🚀 前言:C11简介 一: 🔥 统一的列表初始化💫 2.1 {}初始化 二: 🔥 std::initializer_list 💫 2.1 std::initializer_list是什么类型💫 2.2 s…

正则采集器之三——前端搭建

前端使用有名的饿了么管理后台,vue3版本vue3-element-admin,首先从gitee中克隆一个vue3-element-admin模板代码vue3-element-admin: Vue3 Element Admin开箱即用的中后台管理系统前端解决方案,然后在此基础上进行开发。 1、修改vite.config.…

【C++】初识类和对象

本篇介绍一下C的自定义类型,类和对象。 1.类的定义 1.1 类定义格式 class 为定义类的关键字,Stack为类的名字,类名随便取,{}中为类的主体,类定义结束时后面的分号不可省略。类主体中内容称为类的成员:类中…

C++开源界面库duilib的使用细节与实战技巧总结(实战经验分享)

目录 1、使用CEditUI编辑框 2、使用CLabelUI或CTextUI的Html文本效果 3、使用CTextUI控件对文字宽度自适应的特性 4、CRichEditUI富文本控件使用注意点 4.1、指定CRichEditUI加在2.0版本的Riched20.dll库 4.2、解决向CRichEditUI中插入文字后显示空白的问题 5、设置窗口…

STL——栈和队列和优先队列

栈和队列和优先队列 概述std::堆栈核心函数和操作成员函数示例注意事项 std::队列核心函数和操作成员函数示例注意事项 std::优先队列底层实现原理效率分析deque双端队列原理块结构:指针管理&am…

企业源代码加密软件|6款好用的源代码加密软件推荐

在软件开发领域,源代码作为企业最核心的资产之一,其安全性直接关系到企业的技术竞争力和商业机密保护。因此,选择一款高效、可靠的源代码加密软件对于企业来说至关重要。以下是企业源代码加密软件的六款推荐,每款软件均具备其独特…

【Android】系统架构、四大组件、结构目录

文章目录 Android系统架构Android四大组件ActivityServiceBroadcast ReceiverContent Provider 两大视图主要结构目录 Android系统架构 linux内核层 为设备的各种硬件提供了底层的驱动,如显示驱动等 系统运行库层 通过C/C库来为android提供主要的特性支持。如SQLit…

普元Devops学习笔记-devops对接jenkins提示crumb不可用问题

前言 普元devops需要对接jenkins,对接jenkins后,devops会调用jenkins的提供的API。 问题 新版本的jenkins提供跨域保护,即大名鼎鼎的CSRF问题。 因此,普元devops调用jenkins的时候,会出现跨域问题。 后台报错信息如…

【kubernetes】kubeadm部署k8s集群

1、环境准备 master01: 192.168.10.25master02: 192.168.10.26master03: 192.168.10.27node01: 192.168.10.28node02: 192.168.10.29负载均衡器1:192.168.10.30负载均衡器2:192.168.10.31 //所有节点,关闭防火墙规则,关闭selinu…

大型语言模型入门

大型语言模型ChatGPT 快速、全面了解大型语言模型。学习李宏毅课程笔记。 ChatGPT 目前由OpenAI公司发明的非常火的人工智能AI应用ChatGPT,到底是什么原理呢? G:Generative(生成) P:Pre-trained(预训练) T:Transform…

2024年7月25日(Git gitlab以及分支管理 )

分布式版本控制系统 一、Git概述 Git 是一种分布式版本控制系统,用于跟踪和管理代码的变更。它是由Linus Torvalds创建的,最 初被设计用于Linux内核的开发。Git允许开发人员跟踪和管理代码的版本,并且可以在不同的开 发人员之间进行协作。 Github 用的就是Git系统来管理它们的…

【Unity编辑器拓展】GraphView自定义可视化节点

1、创建节点区域脚本 其中的new class UxmlFactory,可以让该元素显示在UI Builder中,我们就可以在Library-Project中看到我们新建的这两个UI元素,就可以拖入我们的UI窗口编辑了 public class NodeTreeViewer : GraphView {public new class…

一文了解一下 MindSpeed,MindSpeed 是专为华为昇腾设备设计的大模型分布式加速套件。

https://gitee.com/ascend/MindSpeed Gitee Ascend/MindSpeed 项目,MindSpeed 是针对华为昇腾设备的大模型加速库。 MindSpeed 是专为华为昇腾设备设计的大模型加速库,旨在解决用户在大模型训练过程中遇到的显存资源不足等挑战。该库借鉴了 Megatron、D…

福建聚鼎:现在的装饰画还赚钱不

在轻风拂面的清晨,或在星光璀璨的夜晚,人们常常沉浸于对艺术的思考。装饰画作为艺术的一种表现形式,既丰富了人们的精神世界,又装点了生活的每一个角落。但在这个快速变化的时代,一个引人深思的问题浮出水面&#xff1…