【Mysql】flush privilges 刷新系统权限相关表

对mysql.user进行手工操作,比如添加新用户或更改用户的旧密码后,需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问!

以root身份登录数据库,创建用户yangql

mysql> create user yangql  identified by 'yangql';

Query OK, 0 rows affected (0.02 sec)

mysql> exit

Bye

测试连接。

[root@rac3 home]# mysql -uyangql -pyangql

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema | 

| test               | 

+--------------------+

2 rows in set (0.00 sec)

mysql> exit

Bye

以root用户登录,手工修改mysql.user表,这里演示更新用户的密码,对于插入新建用户操作类似!

[root@rac3 home]# mysql 

mysql> show databases;                            

+--------------------+

| Database           |

+--------------------+

| information_schema | 

| latin              | 

| lyz                | 

| momo               | 

| mysql              | 

| test               | 

| test2              | 

| yangdb             | 

| yangutf            | 

+--------------------+

9 rows in set (0.00 sec)

mysql> update mysql.user set password=password('yql') where user='yangql'; 

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from mysql.user where user='yangql';

+------+--------+------------------+-------------+

| Host | User   | Password         | Select_priv |

+------+--------+------------------+-------------+

| %    | yangql | 66d7dc1c3dfc53e6 | N           |

+------+--------+------------------+-------------+

1 row in set (0.00 sec)

mysql> exit

Bye

没有使用flush privilges之前,可以使用老的密码进行登录。

[root@rac3 home]# mysql -uyangql -pyangql

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema | 

| test               | 

+--------------------+

2 rows in set (0.00 sec)

mysql> exit

Bye

执行刷新操作:

[root@rac3 home]# mysql

mysql> flush privilges;//刷新系统权限相关的表

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'privilges' at line 1

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> 

再次使用旧密码登录

[root@rac3 ~]# mysql -uyangql  -pyangql

ERROR 1045 (28000): Access denied for user 'yangql'@'localhost' (using password: YES)

再次使用新密码登录

[root@rac3 ~]# mysql -uyangql  -pyql

Welcome to the MySQL monitor.  Commands end with ; or \g.

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema | 

| test               | 

+--------------------+

2 rows in set (0.00 sec)

mysql> exit

Bye

[root@rac3 ~]# 

还有一种方法,就是重新启动mysql服务器,来使新设置生效。

时间: 2024-10-29 17:45:59

【Mysql】flush privilges 刷新系统权限相关表的相关文章

mysql 增加用户及用户权限各种方法总结

1.grant语句 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 说明: (1)grant all 赋予所有的权限 (2)demo.* 数据库 demo 中所有的表 (3)newuser 用户名 (4)@localhost 在本地电脑上的 mysql server 服务器 (5)identfified by 'password' 设置密码 增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询

MySQL应用技巧之存取权限

MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关.缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名登录,但是这仅仅为了方便,客户程序允许用-u或--user选项指定一个不同的名字.及与安全的考虑,所有的MySQL用户名都应该有口令. 1. MySQL 用户名和口令 * MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关.缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名

关于MYSQL flush table的作用

关于MYSQL flush table的作用 水平有限,还待学习.如有错误,请指正. 先给出官方文档: ? FLUSH TABLES Closes all open tables, forces all tables in use to be closed, and flushes the query cache. FLUSH TABLES also removes all query results from the query cache, like the RESET QUERY CACH

Mysql下建立用户授权权限例子

用户授权在mysql中使用grant命令就可以了,我相信各位都会有了解过了,下面小编为各位介绍一个Mysql下建立用户授权权限例子,希望本文章对各位有帮助.     建立用户,授权数据库: mysql> create user 'byrd'@'localhost' identified by 'admin123';    #建立主机为localhost,密码为admin123的用户byrd Query OK, 0 rows affected (0.05 sec) mysql> show gra

在MySQL数据库增加新用户权限简介

有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表.比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些. 下面的例子显示出如何使用mysql客户安装新用户.这些例子假定权限根据以前的章节描述的缺省被安装.这意味着为了改变,你必须在mysqld正在运行同一台机器上,你必须作为MySQL root用户连接,并且root用户必须对mysql数据库有insert权限和reload管理权限.另外,如果你改变了root用户口令,你必须如下的mysql命令指定它.

Angular中使用ui router实现系统权限控制及开发遇到问题_AngularJS

前端去实现权限控制听起来有点扯淡(实际也有点扯淡),掩耳盗铃,主要是担心安全问题,但是如果在前后端分离的情况下,需要做一个带有权限控制的后台管理系统,angular基于ui-router应该怎么做呢? 权限的设计中比较常见的就是RBAC基于角色的访问控制,基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合.每一种角色对应一组相应的权限. 一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限.这样做的好处是,不必在每次创建用户时都进行分配

MySQL 授予普通用户PROCESS权限

    在MySQL中如何给普通用户授予查看所有用户线程/连接的权限,当然,默认情况下show processlist是可以查看当前用户的线程/连接的.     mysql> grant process on MyDB.* to test; ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES   第一次授予这样的权限,错误原因是process权限是一个全局权限,不可以指定在某一个库上(个人测试库为MyDB),

MAC上Mysql忘记Root密码或权限错误的快速解决方案_Mysql

最近一段时间都在倒腾mantis发现总是连接mysql出错,就随手修改了root权限,导致登录不上了. 下面给大家分享还原root权限和更改root密码的最便捷方法. 1:装mysql workbench .可视化界面直接操作. 2:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 3:进入终端 输入: cd /usr/local/mysql/bin/ 回车后 登录管理员权限 sudo su 回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe -

在MySQL中增添新用户权限的方法_Mysql

有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表.比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些.  下面的例子显示出如何使用MySQL客户安装新用户.这些例子假定权限根据以前的章节描述的缺省被安装.这意味着为了改变,你必须在MySQL正在运行同一台机器上,你必须作为MySQL root用户连接,并且root用户必须对MySQL数据库有insert权限和reload管理权限.另外,如果你改变了root用户口令,你必须如下的MySQL命令指定它.