MySQL用户远程访问权限设置

mysql相关指令

  • 一. MySQL给用户添加远程访问权限
    • 1. 创建或者修改用户权限
      • 方法一:创建用户并授予远程访问权限
      • 方法二:修改现有用户的访问限制
      • 方法三:授予特定数据库的特定权限
    • 2. 修改 MySQL 配置文件
    • 3. 安全最佳实践
    • 4. 测试远程连接
    • 5. 撤销权限或删除用户

一. MySQL给用户添加远程访问权限

1. 创建或者修改用户权限

方法一:创建用户并授予远程访问权限

-- 创建新用户,允许从任何主机(%)连接
CREATE USER '用户名'@'%' IDENTIFIED BY '密码'-- 授予该用户对所有数据库的所有权限(生产环境慎用)
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'-- 刷新权限使更改立即生效
FLUSH PRIVILEGES;

语句解释:

  • CREATE USER: 创建新用户账户
    • ‘username’@‘%’: 用户名和允许连接的主机(%表示任何主机)
    • IDENTIFIED BY: 设置用户密码
  • GRANT ALL PRIVILEGES: 授予用户所有权限
    • *.*: 第一个表示所有数据库,第二个表示所有表
  • FLUSH PRIVILEGES: 重新加载权限表,使更改立即生效

方法二:修改现有用户的访问限制

-- 查看现有用户及其访问权限
SELECT user, host FROM mysql.user;-- 修改用户的host限制(从localhost改为任意主机)
UPDATE mysql.user SET host='%' WHERE user='username';-- 刷新权限
FLUSH PRIVILEGES;

语句解释:

  • SELECT user, host: 查看用户及其允许连接的主机

  • UPDATE mysql.user: 直接修改用户表

    • 将host从’localhost’改为’%'允许远程连接
  • FLUSH PRIVILEGES: 使更改生效

方法三:授予特定数据库的特定权限

-- 授予用户对特定数据库的特定权限
GRANT SELECT, INSERT, UPDATE, DELETE ON dbname.* TO 'username'@'%';-- 查看已授予的权限
SHOW GRANTS FOR 'username'@'%';-- 刷新权限
FLUSH PRIVILEGES;

语句解释:

  • GRANT: 授予特定权限

    • SELECT, INSERT, UPDATE, DELETE: 只授予这些操作权限

    • dbname.*: 只对dbname数据库的所有表有效

  • SHOW GRANTS: 查看用户的权限

  • FLUSH PRIVILEGES: 使更改生效

2. 修改 MySQL 配置文件

  1. 找到MySQL配置文件位置:

    • Ubuntu/Debian: /etc/mysql/mysql.conf.d/mysqld.cnf

    • CentOS/RHEL: /etc/my.cnf 或 /etc/mysql/my.cnf

  2. 编辑配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  1. 找到并修改以下行:
# 原内容可能是
bind-address = 127.0.0.1# 修改为(允许所有IP连接)
bind-address = 0.0.0.0# 或者注释掉这行
# bind-address = 127.0.0.1
  1. 重启MySQL服务:
sudo systemctl restart mysql
# 或
sudo service mysql restart

3. 安全最佳实践

  1. 最小权限原则:
-- 只授予必要的最小权限
GRANT SELECT ON dbname.tablename TO 'username'@'specific_ip';
  1. 限制访问IP:
-- 只允许特定IP连接
CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'password';
  1. 定期审计权限:
-- 查看所有用户权限
SELECT user, host FROM mysql.user;-- 查看特定用户权限
SHOW GRANTS FOR 'username'@'%';
  1. 使用SSH隧道(更安全):
ssh -L 3306:localhost:3306 username@mysql-server-ip
  1. 修改默认端口(可选):
# 在my.cnf中添加
[mysqld]
port = 3307

4. 测试远程连接

在远程机器上测试:

mysql -u username -p -h mysql-server-ip

5. 撤销权限或删除用户

-- 撤销所有权限
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'%';-- 删除用户
DROP USER 'username'@'%';-- 刷新权限
FLUSH PRIVILEGES;

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

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

相关文章

如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核态、用户态内存泄漏

写在前面 博文内容为 通过 BCC 工具集 memleak 进行内存泄漏分析的简单认知包括 memleak 脚本简单认知,内核态(内核模块)、用户态(Java,Python,C)内存跟踪泄漏分析 Demo理解不足小伙伴帮忙指正 😃,生活加油知其不可奈何而安之若命,德之至也。----《庄子内篇人间世》 …

谷歌Sign Gemma: AI手语翻译,沟通从此无界!

嘿,朋友们!想象一下,语言不再是交流的障碍,每个人都能顺畅表达与理解。这听起来是不是很酷?谷歌最新发布的Sign Gemma AI模型,正朝着这个激动人心的未来迈出了一大步!它就像一位随身的、不知疲倦…

全生命周期的智慧城市管理

前言 全生命周期的智慧城市管理。未来,城市将在 实现从基础设施建设、日常运营到数据管理的 全生命周期统筹。这将避免过去智慧城市建设 中出现的“碎片化”问题,实现资源的高效配 置和项目的协调发展。城市管理者将运用先进 的信息技术,如物…

最新Spring Security实战教程(十七)企业级安全方案设计 - 多因素认证(MFA)实现

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

logstash拉取redisStream的流数据,并存储ES

先说结论, window验证logstash截至2025-06-06 是没有原生支持的。 为啥考虑用redisStream呢?因为不想引入三方的kafka等组件, 让服务部署轻量化, 所以使用现有的redis来实现, 为啥不用list呢? 已经用strea…

IEC 61347-1:2015 灯控制装置安全通用要求详解

IEC 61347-1:2015 灯控制装置安全通用要求详解 IEC 61347-1:2015《灯控制装置 第1部分:一般要求和安全要求》是国际电工委员会(IEC)制定的关于灯控制装置安全性能的核心基础标准。它为各类用于启动和稳定工作电流的灯控制装置(如…

26、跳表

在C标准库中,std::map 和 std::set 是使用红黑树作为底层数据结构的容器。 红黑树是一种自平衡二叉搜索树,能够保证插入、删除和查找操作的时间复杂度为O(log n)。 以下是一些使用红黑树的C标准库容器: std::map:一种关联容器&a…

LabVIEW音频测试分析

LabVIEW通过读取指定WAV 文件,实现对音频信号的播放、多维度测量分析功能,为音频设备研发、声学研究及质量检测提供专业工具支持。 主要功能 文件读取与播放:支持持续读取示例数据文件夹内的 WAV 文件,可实时播放音频以监听被测信…

JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除

目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作&#xf…

Doris 与 Elasticsearch:谁更适合你的数据分析需求?

一、Doris 和 Elasticsearch 的基本概念 (一)Doris 是什么? Doris 是一个用于数据分析的分布式 MPP(大规模并行处理)数据库。它主要用于存储和分析大量的结构化数据(比如表格数据)&#xff0c…

使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯

使用Virtual Serial Port Drivercom2tcp或tcp2com进行两台电脑的串口通讯 问题说明解决方案方案三具体操作流程网上教程软件安装拓扑图准备工作com2tcp和tcp2com操作使用串口助手进行验证 方案三存在的问题数据错误通讯延时 问题说明 最近想进行串口通讯的一个测试&#xff0c…

transformer和 RNN以及他的几个变体区别 改进

Transformer、RNN 及其变体(LSTM/GRU)是深度学习中处理序列数据的核心模型,但它们的架构设计和应用场景有显著差异。以下从技术原理、优缺点和适用场景三个维度进行对比分析: 核心架构对比 模型核心机制并行计算能力长序列依赖处…

CSS6404L 在物联网设备中的应用优势:低功耗高可靠的存储革新与竞品对比

物联网设备对存储芯片的需求聚焦于低功耗、小尺寸、高可靠性与传输效率,Cascadeteq 的 CSS6404L 64Mb Quad-SPI Pseudo-SRAM 凭借差异化技术特性,在同类产品中展现显著优势。以下从核心特性及竞品对比两方面解析其应用价值。 一、CSS6404L 核心产品特性…

go语言map扩容

map是什么? ​在Go语言中,map是一种内置的无序key/value键值对的集合,可以根据key在O(1)的时间复杂度内取到value,有点类似于数组或者切片结构,可以把数组看作是一种特殊的map,数组的key为数组的下标&…

2025年SDK游戏盾实战深度解析:防御T级攻击与AI反作弊的终极方案

一、引言:游戏安全的“生死防线” 2025年,全球游戏行业因DDoS攻击日均损失3.2亿元,攻击峰值突破8Tbps,且70% 的攻击为混合型(DDoSCC)。传统高防IP因延迟高、成本贵、协议兼容性差,已无法满足实…

【Linux】LInux下第一个程序:进度条

前言: 在前面的文章中我们学习了LInux的基础指令 【Linux】初见,基础指令-CSDN博客【Linux】初见,基础指令(续)-CSDN博客 学习了vim编辑器【Linux】vim编辑器_linux vim insert-CSDN博客 学习了gcc/g【Linux】编译器gc…

Web前端基础

### 一、浏览器 火狐浏览器、谷歌浏览器(推荐)、IE浏览器 推荐谷歌浏览器原因: 1、简洁大方,打开速度快 2、开发者调试工具(右键空白处->检查,打开调试模式) ### 二、开发工具 核心IDE工具 1. Visual Studio Code (VS Code)‌…

C++调试(肆):WinDBG分析Dump文件汇总

目录 1.前言 2.WinDBG中常用的指令 3.分析异常时要关注的信息 4.心得 前言 本篇博客主要针如何使用WinDBG工具调试Dump文件的流程进行一个讲解,具体捕获的Dump文件也是前两节例子中生成的Dump文件。 WinDBG中常用的指令 关于WinDBG调试时常用的指令主要分为以下几种…

SOC-ESP32S3部分:33-声学前端模型ESP-SR

飞书文档https://x509p6c8to.feishu.cn/wiki/YnbmwtqI5iBwE3kHA7AcZ3yTnLf ESP-SR 是乐鑫官方开发的一个音频组件,支持以下模块: 声学前端算法 AFE唤醒词检测 WakeNet命令词识别 MultiNet语音合成(目前只支持中文) 组件地址&am…

基于vscode,idea,java,html,css,vue,echart,maven,springboot,mysql数据库,在线考试系统

详细视频:【基于vscode,idea,java,html,css,vue,echart,maven,springboot,mysql数据库,在线考试系统-哔哩哔哩】 https://b23.tv/7hwmwmQ