mysql 备份 授权_mysql数据库的用户授权 完全备份以及增量备份

一 用户授权

grant授权

命令格式

-grant   权限列表 on   库名   to  用户名@"客户端地址" identified by  "密码"   //授权用户密码

with  grant    option;    //有授权权限,可选项

mysql> GRANT all ON *.* TO root@'192.168.4.%' IDENTIFIED BY 'tarena';  //  %代表所有网段的主机

grant授权(1)

-权限列表

-all                  //所有权限

-usage                //无权限

-select , update, insert         //个别权限

-select ,update (字段名,.. .., 字段N)   //指定字段

-库名

-*.*    //所有库所有表

-库名.*  //一个库

-库名.表名 //一张表

grant授权(2)

-用户名

-授权时自定义 要有标识性

-存储在mysql库库的user表里

客户端地址

-%           //所有主机

-192.168.4.%   //网段内所有主机

-192.168.4.1   //1台主机

-localhost    //数据库服务器本机

相关命令

命令作用

select   user(  ) ;显示登录用户名及客户端

show   grants;用户显示自身访问权限

show  grants  for

用户名@" 客户端地址" ;管理员查看已有授权用户权限

set   passwiord= password( "密码" );授权用户连接修改密码

set  password  for

用户名@ "客户端地址" = password( "密码" );管理员重置授权用户连接密码

drop   user

用户名@" 客户端地址";删除授权用户( 必须有管理权限)

授权库

mysql库 记录授权信息,主要表如下:

- user表  记录已有的授权用户及权限

- db表    记录已有授权用户对数据库的访问权限

- tables_priv表   记录已有授权用户对字段的访问权限

撤销权限

命令格式:

mysql> revoke  权限列表   on  库名.表  from  用户名@" 客户端地址";

mysql> REVOKE all ON webdb.* FROM webuser@'%';

root密码

恢复root密码  (续1)

[root@50~]# systemctl stop mysqld.service         //停止服务

[root@50~]# systemctl status mysqld.service      //确认状态

[root@dbsvr1 ~]# vim /etc/my.cnf

[mysqld]

skip_grant_tables //添加skip_grant_tables

.. ..

[root@50~]# systemctl start mysqld.service

使用mysql命令连接到MySQL服务,重设root的密码

[root@50 ~]# mysql                  //直接回车即可

进入 mysql> 环境后,通过修改mysql库中user表的相关记录,重设root用户从本机登录的密码:

mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123qqq…A')

-> WHERE user='root' AND host='localhost';             //重设root的密码

mysql> FLUSH PRIVILEGES;                                 //刷新授权表

mysql> exit

备份概述

数据备份方式

物理备份

-冷备: cp  tar

逻辑备份

- mysqldump   //备份命令

- mysql        //恢复命令

备份操作

cp  -r  /var/lib/mysql   备份目录/mysql.bak

tar  -zcvf  /root/mysql.tar.gz   /var/lib/mysql/*

恢复操作

cp  -r  备份目录/mysql.bak    /var.lib/mysql/

tar  -zxvf  /root/mysql.tar.gz  -C  /var/lib/mysql/

chown  -R  mysql:mysql   /var/lib/mysql

数据备份策略

完全备份

- 备份所有数据

增量备份

- 备份上次备份后,所有新产生的数据

差异备份

- 备份完全备份后,  所有新产生的数据

完全备份及恢复

-  完全备份

]# mysqldump   -uroot   -p密码   库名  >  目录/xxx.sql

-  完全恢复

]# mysql  -uroot  -p密码   [ 库名 ]    <   目录/xxx.sql

[root@50 ~]# mysqldump -u root -p --all-databases > /root/alldb.sql

Enter password:                                 //验证口令

[root@50 mysql]# file /root/alldb.sql         //确认备份文件类型

/root/alldb.sql: UTF-8 Unicode English text, with very long lines

完全备份及恢复  ( 续1)

~ 备份是库名表示方式

-   --all-databases  或   -A                //所有库

-  数据库名                                      //单个库

-  数据库名  表名                            //单张表

-   -B  数据库1   数据库2                //多个库

注意事项

-无论备份还是恢复,   都要验证用户权限 !  !  !

binglog  日志

日志概述

~  什么是binlog日志

1. 也称做  二进制日志

2. MySQL服务日志文件的一种

3. 记录除查询之外的所有的SQL命令

4. 可用于数据备份和恢复

5. 配置mysql主从同步的必要条件

启用日志

配置项用途

server_id=数字指定id值( 1-255 )

log_bin[ =目录名/文件名]启用binlog日志

max_binlog_size=数值m指定日志文件容量,默认1G

[root@50 ~]# vim /etc/my.cnf

[mysqld]            //在他下边手动添加

server_id=1                       //指定server_id

log-bin=/mylog/db50               //指定日志目录及名称

[root@50~]# systemctl restart mysqld                 //重启服务

binglog相关文件

- 主机名-bin.index                   索引文件

- 主机名-bin.000001               第一个二进制日志

- 主机名-bin.000002               第二个二进制日志

mysql> show master status; //查看日志信息

mysql> flush logs; //刷新日志 (自动生成日志)

清楚日志

~ 删除指定编号之前的binlog日志文件

- mysql>  purge   master   logs   to  "binlog文件名";

~ 删除所有binlog日志,重建新日志

- mysql>  reset   master;

mysql> purge master logs to "db50.000003"; //删除日志

mysql> system ls /mylog/ //查看日志文件

db50.000003 db50.000004 db50.index

mysql>

mysql> system cat /mylog/db50.index //查看索引文件

/mylog/db50.000003

/mylog/db50.000004

mysql>

恢复数据

分析日志

- 查看日志当前记录格式

mysql>  show  variables  like  " binlog_format";

修改日志记录格式

]#  vim  /etc/my.cnf

[mysqld]

binlog_format= "名称"

]#  systemctl   restart   mysqld

三种记录方式:

1.  statement     报表模式

2.  row               行模式

3. mixed            混合模式

分析日志

~  查看日志内容

-  mysqlbinlog     [选项]     binlog日志文件名

选项用途

--start-datetime=" yyyy-mm-dd  hh:mm:ss"起始时间

--stop-datetime=" yyyy-mm-dd  hh:mm:ss"结束时间

--start-position=数字起始偏移量

--stop-position=数字结束偏移量

恢复数据

~ 基本思路

-  使用mysqlbinlog提取历史SQL操作

-  通过管道交给 mysql命令执行

~ 命令格式

-  mysqlbinlog    日志文件   |  mysql   -uroot    -p密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值