• 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、通过异地或者跨机房等方式来存放备份数据,防止源数据和备份文件一起损坏。
    ==============================
     
     
     
     
  • 相关阅读:
    python数组查找算法---bisect二分查找插入
    pandas的连接函数concat()函数
    python dataframe astype 字段类型转换
    Pandas Dataframe增、删、改、查、去重、抽样基本操作
    pandas入门——loc与iloc函数
    API:详解 pandas.read_csv
    python的复制,深拷贝和浅拷贝的区别
    代码详解生成器、迭代器
    Python学习笔记(4):容器、迭代对象、迭代器、生成器、生成器表达式
    mysql 安装参考
  • 原文地址:https://www.cnblogs.com/elin989898/p/11961520.html
Copyright © 2020-2023  润新知