主页
关于
Stay before every beautiful thoughts
在每一个美好的思想前停留
文章
>
学习笔记
>
正文
MySQL 用户管理
MySQL
Created at 2021-07-16 23:23
# 新增用户 ``` # 添加 mysql>insert into mysql.user(Host,User,Password) values("localhost","UserName",password("flzx3qc1001")); # 刷新权限 mysql>flush privileges; ``` # 修改用户密码 ``` # 修改 mysql>update mysql.user set password=password('new password') where User="UserName" and Host="localhost"; # 刷新权限 mysql>flush privileges; ``` # 删除用户 ``` # 删除 mysql>DELETE FROM user WHERE User="UserName" and Host="localhost"; # 刷新权限 mysql>flush privileges; ``` # 权限分配 ### grant用法 ``` grant 权限 on 数据库.* to 用户名@'登录主机' identified by '密码' ``` ### 权限: 常用总结 ``` ALL // 所有 ALTER // 表修改 CREATE // 表差创建 DROP // 表删除 SELECT // 查询数据 UPDATE // 修改数据 DELETE // 删除数据 ``` ### 数据库: ``` *.* 表示所有库的所有表 test.* 表示test库的所有表 test.test_table 表示test库的test_table表 ``` ### 用户名: mysql账户名 ### 登陆主机: 允许登陆mysql server的客户端ip ``` '%'表示所有ip 'localhost' 表示本机 '192.168.10.2' 特定IP ``` ### 密码: ``` 账户对应的登陆密码 ``` ### 例子 ``` # 设置权限 mysql> grant all on test.* to slave@'%' identified by 'flzx3qc1001'; # 刷新权限 mysql> flush privileges; ``` 新增密码为‘flzx3qc1001’的用户, slave对test库拥有所有操作权限,并不限制slave用户的登陆IP。 ### 注意 grant 会覆盖用户的部分信息,跟insert 、update执行功能一样. #MySQL 重置密码 1. 修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables 2. 保存配置文件后,重启MySQL服务 service mysqld restart 再次进入MySQL命令行 mysql -uroot -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改root密码即可。 ``` USE mysql UPDATE user SET Password = password ('root') WHERE User = 'root'; ``` 密码修改完毕后,再按照步骤1中的流程,删掉配置文件中的那行,并且重启MySQL服务,新密码就生效了。