zoukankan      html  css  js  c++  java
  • MySQL之IDE工具介绍及数据备份

    一、IDE工具介绍

    生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具

    下载链接:https://pan.baidu.com/s/1bpo5mqj

    二、MySQL数据备份

    #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境(
    如数据文件、控制文件、归档日志文件等)。
    但不能恢复到异构系统中如Windows。

    #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
    #3. 导出表: 将表导入到文本文件中。

    也可以用IDE工具来实现备份,点击转储SQL..,那我们重点来研究一下MySQLdump实现的逻辑备份

    1.使用mysqldump实现逻辑备份 

    复制代码
    #语法:
    # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
    当你是本地登录的时候这个-h可以不写,当其他用户登录时,就得写上-h 服务器

    #示例:
    1.单库备份
    mysqldump -uroot -p123456 day47 > E:\day47.sql
    mysqldump -uroot -p123456 test class employee department > E:\test-c-e.sql
    2.多库备份
    mysqldump -uroot -p123456 --databases test db2 zuoye > E:\dbzzz.sql
    3.备份所有库
    mysqldump -uroot -p123456 --all-databases > E://all.sql
     
    复制代码

    2.恢复逻辑备份

    复制代码
    方法1.在没有登录进去之前恢复
    C:UsersAdministrator>mysql -uroot -p123456 test < day47.sql
    drop database day47;
    drop database test;
    create database day47;
    create database test;
    mysql -uroot -p123456 day47 < day47.sql
    mysql -uroot -p123456 test < day47.sql  #也可以在自己新建的空数据库里添加你备份的库
    方法2.mysql登录进去后恢复
    mysql> use db1;
    mysql> SET SQL_LOG_BIN=0;  #设置日志,如果写日志就等于1,不写就等于0。一般不用设置
    mysql> source E:\day47.sql;
    
    3.注:如果备份/恢复单个库时,可以修改sql文件
    DROP database if exists school;
    create database school;
    use school;
    复制代码

    在没有登录之前恢复是,如果你想看恢复了没有的时候是不是每次都要登录进去看看啊,那么我们可以这样做,就不用登录直接查看 了。

    不用再登录进去执行sql语句了
    mysql -uroot -e "use test;show tables;" #注意是双引号 mysql -uroot -e "show databases;" #注意分号在双引号里面
    注意事项:
    1. 完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库)
    2. 恢复期间所有SQL语句不应该记录到binlog中

    3.表的导出与导入

    复制代码
    一、表的导出
    use day47
    select * from userinfo;
    select * from userinfo into outfile 'E:\userinfo.txt'  fields terminated
    by ',' lines terminated by '
    ';  #将字段之间按逗号分开,行之间用'
    '分开
    
    这样写的话报错了。新版本不支持你这样直接指定路径写,为了保证数据的安全。
    如果一旦有黑客拿到sql权限的时候,就把你的数据就给拿走了。你的数据就不安全了
    那么怎么解决这个错误呢?
    show variables like '%secure%';
    解决方法:更改配置文件
    [mysqld]
    secure_file_priv='E:\'
    复制代码

    复制代码
    二、表的导入
    use bak;
    show tables;
    create table user(id int primary key auto_increment,name char(20),age int,depart_id int);
    desc user;
    load data infile 'E:\userinfo.txt' into table user fields terminated by ',' 
    lines terminated by ' ';#导入表
    复制代码

    4.数据库迁移

    务必保证在相同版本之间迁移
    # mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456
  • 相关阅读:
    Java实现 洛谷 P1060 开心的金明
    (Java实现) 洛谷 P1605 迷宫
    (Java实现) 洛谷 P1605 迷宫
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
    Java实现 洛谷 P1064 金明的预算方案
    (Java实现) 洛谷 P1031 均分纸牌
    QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
    武则天红人对唐睿宗的桃色报复(如此缺少城府,注定了要在宫廷中过早地出局)
  • 原文地址:https://www.cnblogs.com/mqhpy/p/11056374.html
Copyright © 2011-2022 走看看