zoukankan      html  css  js  c++  java
  • mysql 完整性备份 及备份注意事项

    mysql 完整性备份 及备份注意事项

     
    describe  user; //查看表
    describe mysql.user //   describe 可以简写成desc
    create databese abc; //创建数据库
    show databases; 相当于是/var/lib/mysql/这里面会出现一个文件夹,当然也可以直接这里面创建一个库比如cloud ,在show databases;中就可以查看到。唯一不同的是权限不一样。一个是root 一个是mysql.
    use abc  //切换到库
    create table users(user_name char(18) not null, user_passwd char(48) default ' ', primary key(user_name) );
    show tables ;
    drop table users;
    drop database abc;
    ---------------------------------
    insert into 表名(字段1,字段2,...)vlaues ( 字段1的值,字段2的值,.....)  //表中插入值
    insert into users(user_name,user_passwd) values(‘zhangsan’,'123456')  //插入数据
    insert into users(user_name,user_passwd) values(‘zhang’,passwd'123456')//加密存储
    ---------------------------------
    select * from users;  //查看表  *代表所有表
    select user_name from users;  //查看某一列的数据
    select user_name,user_password from users;
    select * from users where user_name='zhangsan';
    desc mysql.user
    select Host,User,Password from mysql.user;
    select Host,User,Password from mysql.user where Host='127.0.0.1';  //条件查询
    ----------------------------------
    update users set user_passwd=passwd('654321') where user_name='zhangsan';
     select * from users;
    -----------------------------------
    use mysql
    select user,password from usser;
    update user set password=password('123123') where user='root';
    select user,password from user;
    flush privileges;
    -----------------------------------
    delete from users where user_name='zhaosi';
    ----------------------------------------
    案例:grant select on abc.* to 'teacher'@'localhost' identified by '123456';
    使用grant 语句授权的用户记录,会保存到mysql库的user,db,host,tables_priv 等相关表中,无需书信授权表即可生效。
    ==============================
    常见的备份方法
    mysqldump(备份工具)
    -----------------------------
    MySQL的日志种类
    错误日志
    二进制日志(常用)
    中继日志
    查询日志
    慢查询日志(SQL性能优化)
    事务日志
    -----------------
    Percona XtraBackup (Mysql热备份软件)
    ------------------------
    思考类问题:
    公司数据库的总数居量多大?
    每天的增长量多大?
    备份的策略?
    备份的数据量?
    备份的时长?
    ----------------------------------
    MySQL完全备份操作
    源码安装的位置 /usr/local/mysql/data
    rpm包安装的位置/var/lib/mariadb/
    开启服务:
    systemctl start mariadb
    mysqladmin -u root -pssword 123456
    进入数据库进行模拟数据
    mysql -uroot -p123456
    create database auth;
    use auth;
    create table user(name char(10) not null ,ID int(48));
    insert into user values('crushlinux','123');
    select * from user;
    ----
    对上述数据进行备份
    首先进行停库
    systemctl stop mariadb
    ls /var/lib/mysql/    //擦好看auth
    打包压缩
    rpm -q xz    //xz是最常用的
    yum -y install xz
    mkdir backup
    tar Jcf backup /mysql_all-$(date+%F).tar.xz /var/lib/mysql/
    ls -l backup/
     模拟数据丢失
    删除auth
    rm -rf /var/lib/mysql/auth/
    ls /var/lib/mysql/
    systemctl start mariadb
    mysql -uroot -p123456
    show databases;
     ---------
    恢复数据
    mkdir restore
    tar xf backup/mysql_..... -C restore/
    然后查看
    mv auth/ /var/lib/mysql
    然后在数据库中进行查看
    ========================
    使用mysqldump 备份(常用)
    mysql 中自带的有这个工具
    这个工具会将mysql的数据全部导出成sql脚本,在需要升级mysql服务器时,可以先使用mysqldump命令将原有库信息导出,然后直接在升级后的mysql服务器中导入即可
    【1】备份单个库
    格式:mysqldump -u 用户名 -p 密码[选项] --databeses[数据库名]>/备份路径/备份文件名
    musqldump -uroot -p123456 --databases auth > backup/auth-$(date+%Y%m%d).sql
    grep -Ev "^/|^$|^-" backup/auth-2019..sql  //查看压缩的内容
    【2】对多个库进行备份
    格式:mysqldump -u 用户名 -p 密码[选项] --databeses 库名1[库名2]...>/备份路径/备份文件名
    musqldump -uroot -p123456 --events --databases  mysql auth > backup/mysql+auth-$(date+%Y%m%d).sql
    【3】对所有库进行完全备份
    格式:mysqldump -u 用户名 -p 密码[选项] --opt --all-databases > /备份路径备份文件名
    musqldump -uroot -p123456 --events  --opt --all-databases >backup/mysql_all.$(date+%Y%m%d).sql
    【4】对表进行完全备份
    格式:mysqldump -u 用户名 -p 密码[选项] 数据库名 表名 > /备份路径/备份文件名
     mysqldump -uroot -p123456 auth user > backup/auth_user-$(date +%Y%m%d).sql
    【5】对表结构的备份(面试)
    格式:mysqldump -u用户名 -p [密码] -d 数据库名 表名 > /备份路径/备份文件名
     mysqldump -uroot -p123456 -d mysql user > backup/desc_mysql_user-$(date +%Y%m%d).sql
    ==============================
    使用mysqldump备份后,恢复数据库
    1、source命令
    登录到MySQL数据库,执行source 备份sql脚本路径
    mysql -uroot -p123456
    show databases;
    drop database auth;
    source backup/mysql_all.20181214.sql
    show databases;
    2、mysql命令
    格式:
     mysql -u用户名 -p [密码] < 库备份脚本的路径
     mysql -u用户名 -p [密码] 库名 < 表备份脚本的路径
    mysql -uroot -p123456 -e 'show databases;      ///-e可以直接执行语句
    [root@localhost ~]# mysql -uroot -p123456 -e 'drop database auth;'
    [root@localhost ~]# mysql -uroot -p123456 < backup/mysql_all.20181214.sql
    [root@localhost ~]# mysql -uroot -p123456 -e 'show databases;'
    [root@localhost ~]# mysql -uroot -p123456 -e 'drop table auth.user;'
    [root@localhost ~]# mysql -uroot -p123456 auth< backup/auth_user-20181214.sql
    [root@localhost ~]# mysql -uroot -p123456 -e 'select * from auth.user;'
    ==============================
    MySQL备份思路
    1、定期实施备份,指定备份计划或策略,并严格遵守
    2、除了进行完全备份,开启MySQL服务器的binlog日志功能是很重要的(完全备份加上日志,可以对MySQL进行最大化还原)
    3、使用统一和易理解的备份名称,推荐使用库名或者表名加上时间的命名规则,如mysql_user-20181214.sql,不要使用backup1或者abc之类没有意义的名字。
    4、定期抽查备份的可靠性,比如做还原测试或者检查文件大小等方式。
    5、通过异地或者跨机房等方式来存放备份数据,防止源数据和备份文件一起损坏。
    ==============================
     
     
     
     
  • 相关阅读:
    win10 uwp 弹起键盘不隐藏界面元素
    win10 uwp 存放网络图片到本地
    win10 uwp 存放网络图片到本地
    sublime Text 正则替换
    sublime Text 正则替换
    win10 uwp 绘图 Line 控件使用
    win10 uwp 绘图 Line 控件使用
    AJAX 是什么?
    什么是 PHP SimpleXML?
    PHP XML DOM:DOM 是什么?
  • 原文地址:https://www.cnblogs.com/elin989898/p/11961520.html
Copyright © 2011-2022 走看看