mysql 使用flush privileges刷新权限会影响已经建立的会话吗

执行`flush privileges`不会影响已建立的会话,它们将继续使用旧的权限设置,直到会话结束。新会话将使用更新后的权限。若要立即影响现有会话,需终止并重新连接。此外,强制终止会话可能导致未完成事务中断,应注意数据一致性。本文还分享了作者的运维经验和学习资源分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 已有会话保持不变:在FLUSH PRIVILEGES执行后,已经建立的会话将继续使用旧的权限设置,直到会话结束。
  • 新会话使用新权限:任何在FLUSH PRIVILEGES之后建立的新会话将使用更新后的权限。
实时更新权限的方法

如果你需要让权限更改立即影响到一个已经建立的会话,你需要终止那个会话。用户下次连接时,将会使用新的权限设置。可以通过以下步骤实现:

  1. 查找会话ID
    使用SHOW PROCESSLIST;来查找特定用户的会话ID。
  2. 终止会话
    使用KILL [session id];命令来终止那个会话。这里的[session id]是从上一步中获得的会话ID。
注意事项

在执行这些操作时要小心,因为强行终止用户的会话可能会导致未完成的事务被中断,从而可能影响数据的一致性和完整性。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-B1dymR5D-1712851104097)]

### FLUSH PRIVILEGES 命令的功能与作用 #### 1. **核心功能** `FLUSH PRIVILEGES` 命令的主要功能是从 MySQL 数据库的 `mysql` 库中读取用户权限信息,并将其加载到内存中的权限缓存表中[^1]。这一步骤对于确保最新的权限设置能够即时生效至关重要。 当管理员对用户的权限进行了任何修改(例如新增用户、删除用户或更改现有用户的权限),这些变更默认情况下并不会立刻反映在正在运行的服务中。只有通过执行 `FLUSH PRIVILEGES` 或重启 MySQL 服务,才能让新的权限配置被应用。 --- #### 2. **适用场景** 以下是需要使用 `FLUSH PRIVILEGES` 的典型场景: - 当前会话中直接修改了 `mysql.user` 表或其他权限管理相关的表(如 `db`, `tables_priv`, `columns_priv` 等)。 - 创建新用户后希望立即赋予其相应权限而不需要等待下次服务启动[^2]。 - 更改了某个用户的密码或者调整了他们的访问级别,期望改动即刻可用而不是等到下一次系统维护窗口期间才生效。 举例说明:如果尝试更新 root 用户密码却未同步调用 `FLUSH PRIVILEGES` ,即使数据库记录已被更改为最新值,在线连接可能仍然沿用旧凭证直到显式刷新或整个实例重启为止[^3]。 --- #### 3. **工作原理** 本质上讲,每当 MySQL 启动时都会自动初始化一组内部结构用来存储来自磁盘文件的数据副本——这就是所谓的“权限缓存”。然而,一旦程序处于活动状态之中就不会再去主动查询硬盘上的原始资料除非收到明确指示去做这件事;而这正是 `FLUSH PRIVILEGES` 所扮演的角色所在之处【^4】. 换句话说,它强制促使服务器丢弃现有的授权信息拷贝并重新构建一个新的版本基于当前存在于持久化层内的定义内容之上。如此一来便可以保证所有后续请求都将依据最精确无误的安全策略来进行处理。 --- #### 4. **替代方案及其局限性** 除了利用 `FLUSH PRIVILEGES` 外还有另一种方式可以使最近所做的变动迅速得到体现,那就是完全关闭然后再开启MySQL进程本身。不过这种方法存在明显弊端比如中断正在进行的工作负载以及增加不必要的宕机时间等等原因使得人们倾向于前者而非后者作为首选解决方案【^5】. 另外值得注意的是尽管两者都能达到相似的效果但在某些特殊环境下可能会表现出行为差异比如说涉及到复制集群架构的时候因为主节点上的元数据改变未必总是能及时传播给从属成员所以单纯依赖全局广播事件或许不足以覆盖全部需求此时单独发送通知就显得尤为重要起来。 --- ```sql -- 示例代码演示如何正确运用 FLUSH PRIVILEGES CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT ON *.* TO 'test_user'@'localhost'; -- 不同于其他 DDL/DML 操作,这里必须手动触发特权刷新动作 FLUSH PRIVILEGES; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值