mysql用户管理与备份
用户管理
我们知道在Mysql中root用户是最高权限的用户,其他用户的创建和权限授予都是通过root用户来操作的
查看用户
在root用户界面下
select user,host,password from mysql.user;
```sql
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
+------+-----------+-------------------------------------------+
```
## 创建用户
### 指定ip和用户名登录
指定ip为192.168.1.17的mm用户登录
create user 'mm'@'192.168.1.17' identified by '123';
identified by 'password'表示为创建的用户设置密码,可以省略
+------+--------------+-------------------------------------------+
| user | host | password |
+------+--------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| mm | 192.168.1.17 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+--------------+-------------------------------------------+
### 指定ip地址段和用户名登录
指定ip地址段的mm用户登录
create user 'mm'@'192.168.1.%' identified by '123';
```sql
+------+--------------+-------------------------------------------+
| user | host | password |
+------+--------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| mm | 192.168.1.17 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| mm | 192.168.1.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+--------------+-------------------------------------------+
<br>
### 如果不指定ip,则默认是所有的ip都可以登录
```sql
create user 'hh' identified by '123';
```sql
+------+--------------+-------------------------------------------+
| user | host | password |
+------+--------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| mm | 192.168.1.17 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| mm | 192.168.1.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| hh | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+--------------+-------------------------------------------+
注意:mysql识别用户是通过用户名和ip联合识别的,其中<b><font color='#ff0000'>localhost和127.0.0.1被认为是两个不同的ip</font></b>,也就是说,mm@'localhost'和mm@'127.0.0.1'是两个不同的用户!
<br>
## 删除用户
删除用户不能直接对mysql.user表进行操作,而是使用drop语句
```sql
drop user 'mm'@'192.168.1.17';
drop user 'hh'; # host为%时,可以省略不写
## 修改用户(用户名和ip)
语法为
```sql
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
修改mm用户的登录ip为192.168.1.111
```sql
rename user 'mm'@'192.168.1.%' to 'gf'@'192.168.1.111';
```sql
+------+---------------+-------------------------------------------+
| user | host | password |
+------+---------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| gf | 192.168.1.111 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| sh | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| ss | % | |
+------+---------------+-------------------------------------------+
<br>
## 修改密码
语法
```sql
SET PASSWORD FOR '用户名'@'IP地址' = PASSWORD('新密码');
修改gf用户的密码为456
```sql
set password for 'gf'@'192.168.1.111'=password('456');
```
```sql
+------+---------------+-------------------------------------------+
| user | host | password |
+------+---------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| gf | 192.168.1.111 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
| sh | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| ss | % | |
+------+---------------+-------------------------------------------+
```
查看权限
语法
show grants for '用户'@'IP地址'
查看root用户的权限
show grants for 'root'@'localhost';
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost
|
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
+----------------------------------------------------------------------------------------------------------------------------------------+
可以看到root用户拥有所有(最高)权限
查看gf用户权限
show grants for 'gf'@'192.168.1.111';
+---------------------------------------------------------------------------------------------------------------+
| Grants for gf@192.168.1.111
|
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gf'@'192.168.1.111' IDENTIFIED BY PASSWORD '*531E182E2F72080AB0740FE2F2D689DBE0146E04' |
+---------------------------------------------------------------------------------------------------------------+
授权
语法
grant 权限1,权限2,权限3 on 数据库名.表名 to "用户"@'IP地址';
授予gf用户查询,插入,更新权限
grant select ,insert,update on *.*to "gf"@'192.168.1.111';
授予用户所有权限
grant all privileges on 数据库名.表名 to "用户"@'IP地址';
给sh用户授予mysql库的所有权限
grant all privileges on mysql.* to 'sh';
注意:
1)授权后需要重新登录才生效
2)不能对同一个用户,多次授权不同的权限。否则会有多条授权规则,最终以最严格的权限为准。
取消权限
语法
revoke 权限1 on 数据库名.表名 from "用户"@'IP地址';
取消gf用户对mysql库的多有表的更新权限
revoke update on *.* from 'gf'@'192.168.1.111';
取消所有权限
revoke all privileges on *.* from 'gf'@'192.168.1.111';
注意:取消的权限必须与授予的权限完全一致,不能取消部分权限
## 备份
### 备份数据和表结构
在命令行下
```
mysqldump -u root -p db1 > db1.sql
```
仅备份表结构
mysqldump -u root -p -d db1 > db2.sql
恢复
登录mysql,创建数据库
create database db10;
退出mysql,在命令行下将备份导入db10数据库里
mysqldump -u root -p -d db10 < db1.sql
提示Dump completed表示导入成功
mysql用户管理与备份的更多相关文章
- MySQL用户管理、常用sql语句、MySQL数据库备份恢复
1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...
- Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...
- MySQL用户管理及SQL语句详解
1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+--- ...
- 【转】MySQL用户管理及SQL语句详解
[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...
- Oracle DB 执行用户管理的备份和恢复
• 说明用户管理的备份和恢复与服务器管理的备份和恢复 之间的差异 • 执行用户管理的数据库完全恢复 • 执行用户管理的数据库不完全恢复 备份和恢复的使用类型 数据库备份和恢复的类型包括: • 用户管理 ...
- Oracle—用户管理的备份(一)
用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...
- Oracle—用户管理的备份(二)
在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...
- MySQL(十六)之MySQL用户管理
一.MySQL用户管理概述 MySQL是一个多用户的数据库,MYSQL的用户可以分为两大类: 超级管理员用户(root),拥有全部权限 普通用户,由root创建,普通用户只拥有root所分配的权限 二 ...
- 库增删该查,表增删该查,记录增删该查,表与表关系(多对多,多对一,一对一),mysql用户管理
库增删该查 增加库 create database db1 create database db1 charset="gbk 查看库 show databases 查看所有库 show cr ...
随机推荐
- 英语口语练习系列-C07-谈女孩
<将进酒>·李白 君不见黄河之水天上来,奔流到海不复回. 君不见高堂明镜悲白发,朝如青丝暮成雪. 人生得意须尽欢,莫使金樽空对月. 天生我材必有用,千金散尽还复来. 烹羊宰牛且为乐,会须一 ...
- hashlib模块
老师博客:http://www.cnblogs.com/Eva-J/articles/7228075.html#_label12 摘要算法 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个 ...
- 【转】Android调用Sqlite数据库时自动生成db-journal文件的原因
数据库为了更好实现数据的安全性,一半都会有一个Log文件方便数据库出现意外时进行恢复操作等.Sqlite虽然是一个单文件数据库,但麻雀虽小五脏俱全,它也会有相应的安全机制存在 这个journal文件便 ...
- Python 隔离环境 virtualenv
1) 安装 $ sudo pip3 install virtualenv 2) 创建并进入工程目录,例如 myproject $ mkdir myproject $ cd myproject 3) 在 ...
- SpringBoot标准Properties
# =================================================================== # COMMON SPRING BOOT PROPERTIE ...
- K8S集群技术
1.快速部署K8S环境 k8s-m :10.0.0.11 k8s-n1 :10.0.0.12 k8s-n2 :10.0.0.13 2.所有节点安装docker环境及依赖 2.1 上传docke ...
- C# 将普通字符串转换为二进制字符串
1.因为项目的需要,在向数据库中添加人的信息时,必须要求是英文或数字,所以想了个办法,将我们人能看懂的字符串编译成二进制字符串转入就行了. 具体的逻辑实现代码如下:
- STM32407+LAN8720A+LWIP 实现TCP Client
硬件 一.配置CubeMax工程 二.配置系统时钟 因为LAN8720使用的是外部25MHz的晶振,所以不需要单片机输出时钟 三.配置ETH和LWIP参数 四.更改代码 LAN8720A在初始化的时候 ...
- React 合并行 RowSpan
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 今儿分享一篇关于React Table 组件合并单元行的方法! 实例效果如下: 原则就是遇到相同的供方名称,就要做行合并! 思路如下:后端计算合并的 ...
- OracleSql语句学习(三)
--在SELECT子句中出现的函数或表达式会在结果集中作为字段名,这样的可读性差,因此可以为--这样的字段添加别名(别名中不能出现空隔,除非是用双引号括起来的)--别名中如果希望包含空隔或者区分大小写 ...