经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » MySQL » 查看文章
MySQL逻辑备份into outfile别来无恙-
来源:cnblogs  作者:别来无恙-  时间:2018/10/18 8:53:12  对本文有异议

MySQL 备份之 into outfile

逻辑数据导出(备份)

用法:

  1. select xxx into outfile '/path/file' from table_name;
  2. mysql>select * into outfile '/back/emp3.sql' from emp;

 无论是什么存储引擎,本身是一种数据导出的方法,同时可以用来辅助备份,它可以对一个表的其中一列或者某几列做备份,如果是多列的话用逗号隔开

逻辑数据导入(恢复)

方法一:

  1. load data local infile '/path/file' into table table_name;
  2. mysql> load data local infile '/back/emp.sql' into table emp;

 说明:该方法要求在编译数据库时要加上--enable-local-infile参数才可以使用

方法二:

  1. # mysqlimport dbname /path/filename

    说明:filename 必须和数据库里面表名一样

综合示例

例一

  1. # 创建表
  2. mysql> create table t1(id int, name varchar(32));
  3. # 插入数据
  4. mysql> insert into t1 values(1,'haha'),(2,'wowo'),(3,'lili'),(4,'yoyo');
  5. # 查看表
  6. mysql> select * from t1;
  7. +------+------+
  8. | id | name |
  9. +------+------+
  10. | 1 | haha |
  11. | 2 | wowo |
  12. | 3 | lili |
  13. | 4 | yoyo |
  14. +------+------+
  15.  
  16. # 备份
  17. mysql> select id, name into outfile '/tmp/back_mysql' from t1;
  18. Query OK, 4 rows affected (0.01 sec)

查看备份

  1. [root@Admin ~]# cat /tmp/back_mysql
  2. 1    haha
    2    wowo
    3    lili
    4    yoyo

删除数据并测试

  1. mysql> delete from t1 where id=3;
  2. Query OK, 1 row affected (0.00 sec)
  3. mysql> select * from t1;
  4. +------+------+
  5. | id | name |
  6. +------+------+
  7. | 1 | haha |
  8. | 2 | wowo |
  9. | 4 | yoyo |
  10. +------+------+
  11. 3 rows in set (0.00 sec)
  12. mysql> load data local infile '/tmp/back_mysql' into table t1;
  13. Query OK, 4 rows affected (0.00 sec)
  14. Records: 4 Deleted: 0 Skipped: 0 Warnings: 0
  15. mysql> select * from t1;
  16. +------+------+
  17. | id | name |
  18. +------+------+
  19. | 1 | haha |
  20. | 2 | wowo |
  21. | 4 | yoyo |
  22. | 1 | haha |
  23. | 2 | wowo |
  24. | 3 | lili |
  25. | 4 | yoyo |
  26. +------+------+
  27. 7 rows in set (0.00 sec)
View Code

例二

创建一个表,把系统里的/etc/passwd导入数据库

  1. create table password(
  2. username varchar(40),
  3. password char(5),
  4. uid int,
  5. gid int,
  6. comment varchar(30),
  7. homedir varchar(30),
  8. shell varchar(30));

处理passwd文件,将:替换成制表符

  1. [root@Admin ~]# sed -n 's/:/\t/gp' /etc/passwd >/tmp/passwd

导入数据库

方法一:

  1. mysql> load data local infile '/tmp/passwd' into table password;
  1. mysql> select * from password;
  2. +---------------+----------+-------+-------+------------------------------+------------------------+----------------+
  3. | username | password | uid | gid | comment | homedir | shell |
  4. +---------------+----------+-------+-------+------------------------------+------------------------+----------------+
  5. | root | x | 0 | 0 | root | /root | /bin/bash |
  6. | bin | x | 1 | 1 | bin | /bin | /sbin/nologin |
  7. | daemon | x | 2 | 2 | daemon | /sbin | /sbin/nologin |
  8. | adm | x | 3 | 4 | adm | /var/adm | /sbin/nologin |
  9. | lp | x | 4 | 7 | lp | /var/spool/lpd | /sbin/nologin |
  10. | sync | x | 5 | 0 | sync | /sbin | /bin/sync |
  11. | shutdown | x | 6 | 0 | shutdown | /sbin | /sbin/shutdown |
  12. | halt | x | 7 | 0 | halt | /sbin | /sbin/halt |
  13. | mail | x | 8 | 12 | mail | /var/spool/mail | /sbin/nologin |
  14. | uucp | x | 10 | 14 | uucp | /var/spool/uucp | /sbin/nologin |
  15. | operator | x | 11 | 0 | operator | /root | /sbin/nologin |
  16. | games | x | 12 | 100 | games | /usr/games | /sbin/nologin |
  17. | gopher | x | 13 | 30 | gopher | /var/gopher | /sbin/nologin |
  18. | ftp | x | 14 | 50 | FTP User | /var/ftp | /sbin/nologin |
  19. | nobody | x | 99 | 99 | Nobody | / | /sbin/nologin |
  20. | dbus | x | 81 | 81 | System message bus | / | /sbin/nologin |
  21. | usbmuxd | x | 113 | 113 | usbmuxd user | / | /sbin/nologin |
  22. | rpc | x | 32 | 32 | Rpcbind Daemon | /var/lib/rpcbind | /sbin/nologin |
  23. | rtkit | x | 499 | 499 | RealtimeKit | /proc | /sbin/nologin |
  24. | avahi-autoipd | x | 170 | 170 | Avahi IPv4LL Stack | /var/lib/avahi-autoipd | /sbin/nologin |
  25. | vcsa | x | 69 | 69 | virtual console memory owner | /dev | /sbin/nologin |
  26. | abrt | x | 173 | 173 | | /etc/abrt | /sbin/nologin |
  27. | rpcuser | x | 29 | 29 | RPC Service User | /var/lib/nfs | /sbin/nologin |
  28. | nfsnobody | x | 65534 | 65534 | Anonymous NFS User | /var/lib/nfs | /sbin/nologin |
  29. | haldaemon | x | 68 | 68 | HAL daemon | / | /sbin/nologin |
  30. | ntp | x | 38 | 38 | | /etc/ntp | /sbin/nologin |
  31. | apache | x | 48 | 48 | Apache | /var/www | /sbin/nologin |
  32. | saslauth | x | 498 | 76 | Saslauthd user | /var/empty/saslauth | /sbin/nologin |
  33. | postfix | x | 89 | 89 | | /var/spool/postfix | /sbin/nologin |
  34. | gdm | x | 42 | 42 | | /var/lib/gdm | /sbin/nologin |
  35. | pulse | x | 497 | 496 | PulseAudio System Daemon | /var/run/pulse | /sbin/nologin |
  36. | sshd | x | 74 | 74 | Privilege-separated SSH | /var/empty/sshd | /sbin/nologin |
  37. | tcpdump | x | 72 | 72 | | / | /sbin/nologin |
  38. | mysql | x | 27 | 27 | MySQL Server | /var/lib/mysql | /bin/bash |
  39. +---------------+----------+-------+-------+------------------------------+------------------------+----------------+

方法二:

通过mysqlimport进行导入

注意:导入的文件名必须和表名一样

  1. [root@Admin ~]# cp /etc/passwd /tmp/password
  2. [root@Admin ~]# mysqlimport --fields-terminated-by=':' --lines-terminated-by='\n' login '/tmp/password'
  3. login.password: Records: 34 Deleted: 0 Skipped: 0 Warnings: 0

    # 说明:文件不需处理, 通过--fields-terminated-by=':'--lines-terminated-by='\n' 将passwd文件中的冒号替换为制表符
  1. mysql> select * from password;
  2. +---------------+----------+-------+-------+------------------------------+------------------------+----------------+
  3. | username | password | uid | gid | comment | homedir | shell |
  4. +---------------+----------+-------+-------+------------------------------+------------------------+----------------+
  5. | root | x | 0 | 0 | root | /root | /bin/bash |
  6. | bin | x | 1 | 1 | bin | /bin | /sbin/nologin |
  7. | daemon | x | 2 | 2 | daemon | /sbin | /sbin/nologin |
  8. | adm | x | 3 | 4 | adm | /var/adm | /sbin/nologin |
  9. | lp | x | 4 | 7 | lp | /var/spool/lpd | /sbin/nologin |
  10. | sync | x | 5 | 0 | sync | /sbin | /bin/sync |
  11. | shutdown | x | 6 | 0 | shutdown | /sbin | /sbin/shutdown |
  12. | halt | x | 7 | 0 | halt | /sbin | /sbin/halt |
  13. | mail | x | 8 | 12 | mail | /var/spool/mail | /sbin/nologin |
  14. | uucp | x | 10 | 14 | uucp | /var/spool/uucp | /sbin/nologin |
  15. | operator | x | 11 | 0 | operator | /root | /sbin/nologin |
  16. | games | x | 12 | 100 | games | /usr/games | /sbin/nologin |
  17. | gopher | x | 13 | 30 | gopher | /var/gopher | /sbin/nologin |
  18. | ftp | x | 14 | 50 | FTP User | /var/ftp | /sbin/nologin |
  19. | nobody | x | 99 | 99 | Nobody | / | /sbin/nologin |
  20. | dbus | x | 81 | 81 | System message bus | / | /sbin/nologin |
  21. | usbmuxd | x | 113 | 113 | usbmuxd user | / | /sbin/nologin |
  22. | rpc | x | 32 | 32 | Rpcbind Daemon | /var/lib/rpcbind | /sbin/nologin |
  23. | rtkit | x | 499 | 499 | RealtimeKit | /proc | /sbin/nologin |
  24. | avahi-autoipd | x | 170 | 170 | Avahi IPv4LL Stack | /var/lib/avahi-autoipd | /sbin/nologin |
  25. | vcsa | x | 69 | 69 | virtual console memory owner | /dev | /sbin/nologin |
  26. | abrt | x | 173 | 173 | | /etc/abrt | /sbin/nologin |
  27. | rpcuser | x | 29 | 29 | RPC Service User | /var/lib/nfs | /sbin/nologin |
  28. | nfsnobody | x | 65534 | 65534 | Anonymous NFS User | /var/lib/nfs | /sbin/nologin |
  29. | haldaemon | x | 68 | 68 | HAL daemon | / | /sbin/nologin |
  30. | ntp | x | 38 | 38 | | /etc/ntp | /sbin/nologin |
  31. | apache | x | 48 | 48 | Apache | /var/www | /sbin/nologin |
  32. | saslauth | x | 498 | 76 | Saslauthd user | /var/empty/saslauth | /sbin/nologin |
  33. | postfix | x | 89 | 89 | | /var/spool/postfix | /sbin/nologin |
  34. | gdm | x | 42 | 42 | | /var/lib/gdm | /sbin/nologin |
  35. | pulse | x | 497 | 496 | PulseAudio System Daemon | /var/run/pulse | /sbin/nologin |
  36. | sshd | x | 74 | 74 | Privilege-separated SSH | /var/empty/sshd | /sbin/nologin |
  37. | tcpdump | x | 72 | 72 | | / | /sbin/nologin |
  38. | mysql | x | 27 | 27 | MySQL Server | /var/lib/mysql | /bin/bash |
  39. +---------------+----------+-------+-------+------------------------------+------------------------+----------------+
  40. 34 rows in set (0.00 sec)

例三

把用户登录系统的信息存储到数据库里

需要显示如下:

  1. select username 用户名, tty 登录终端, ip 来源IP from login;

创建数据库

  1. mysql> create table login( username varchar(40), tty varchar(40), ip varchar(50));

处理登录数据并存储在文件里

  1. [root@Admin ~]# last -f /var/log/wtmp |sed -r '/^reboot|^wtmp/d' |awk '{print $1"\t"$2"\t"$3}'|tee /tmp/login

 存储

  • 方法一:
    1. mysql> load data local infile '/tmp/login' into table login;
  • 方法二:
    1. [root@Admin ~]# mysqlimport login '/tmp/login'

查看结果

  1. mysql> select username 用户名, tty 登录终端, ip 来源IP from login;
  2. +-----------+--------------+---------------+
  3. | 用户名 | 登录终端 | 来源IP |
  4. +-----------+--------------+---------------+
  5. | root | pts/2 | 192.168.1.131 |
  6. | root | pts/1 | 192.168.1.131 |
  7. | root | pts/1 | 192.168.1.131 |
  8. | root | pts/0 | :0.0 |
  9. | root | tty1 | :0 |
  10. | root | pts/0 | :0.0 |
  11. | root | tty1 | :0 |
  12. | | | |
  13. +-----------+--------------+---------------+
  14. 8 rows in set (0.00 sec)

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号