mysql什么时候需要flush privileges

mysql什么时候需要flush privileges,第1张

必须使用flush privileges的两种情况

1、改密码。

2、授权超用户

flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。

通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

扩展资料:

mysql 修改密码后,注意flush privileges。

mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。

具体例子:

1、用户root用户进入mysql再打开mysql数据库(use mysql)后。

create user stu identified by ‘stu’    ##创建一用户stu并添加密码为stu。

exit    ##退出测试。

2、用新用户重新进入mysql。

mysql -ustu -pstu   ##进入成功。

3、重新使用root用户进入mysql并打开mysql数据库。

update user set password=password (‘123456’) where user='stu'   ##更改stu用户密码为123456。

exit     ##再次退出测试。

4、直接以用户stu身份进入,用新密码进入看是否成功。

mysql -ustu -p123456  ##报错,密码不正确。

5、重新以root 用户登陆并进入mysql数据库,重新修改用户密码。

update user set password=password (‘123456’) where user='123456'   ##更改stu用户密码为123456

flush privileges   ##刷新MySQL的系统权限相关表。

exit

6.再次退出,并以stu用户123456密码进入,测试成功。

早上8点种线上服务器大量报出以下异常

show processlist后发现大量线程处于Wating For table flush状态

官方文档对Waiting for table flush状态的解释

This notification takes place if another thread has used FLUSH TABLES or one of the following statements on the table in question: FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE, or OPTIMIZE TABLE

以下场景会导致线程处于Waiting for table flush状态

1 线程执行 FLUSH TABLES,等待其他线程关闭相应flush的表。

2 其他线程执行如 FLUSH TABLES tbl_name, ALTER TABLE..等 *** 作,该线程也需要等相应的表关闭。

session1 在t1时间查询表t1,这里模拟一个慢查询。

session2 在t2时间flush table t1

session3 在t3时间查询表t1.

show processlist看下现在三个线程状态

可以看到由于慢查询导致t1表没关闭,后面的flush table等待,然后导致所有查询t1表的线程都会处于Wating for table flush状态。

经过和DBA复盘整个流程,DBA定时执行Dump备份,而Dump命令会导致flush tables,由于这个时候慢sql还没有执行结束,所以导致flush table等待,从而导致后续sql也处于waiting for table flush.

01、

mysql为了提高其性能,部分数据时缓存在内存中,因此要刷新表(清除缓存),就需要用:FLUSH TABLES

02、

如果是需要备份数据库,同时防止备份时候有新数据写入,且备份的是FLUSH TABLES WITH READ LOCK

03、

具体你可以查询官方文档,其用处并不是很大,相反刷新权限我们时常用。但是,对于并发现很高、缓存很大的数据库,在备份时候都需要加上锁并刷新。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7500422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存