MySQL 数据库 之 温备份 & 热备份

  • 前言
  • 一、完全备份方案
  • 二、增量备份方案
  • 三、GTID 备份
  • 四、mydumper 备份
  • 五、LVM 快照备份
  • 六、xtrabackup 备份
    • 1、完全备份
    • 2、增量备份

前言

本环境是基于 Centos 7.8 系统构建MySQL-5.7.14
具体构建,请参考 MySQL-5.7.14 环境构建


一、完全备份方案

mysqldump 是采用SQL级别的备份机制,它将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适。接下来我们将详细介绍MySQL自带的mysqldump 工具的备份方案。

备份方式

# 备份时不创建数据库和切换数据库(需要管理员手工创建和切换)
[root@mysql-yum ~]# mkdir /backup/mysql -p
[root@mysql-yum ~]# mysqldump -uroot -p123456 db1 > /backup/mysql/db1_1.sql
# 备份时创建数据库和切换数据库
[root@mysql-yum ~]# mysqldump -uroot -p123456 -B db1 > /backup/mysql/db1_2.sql
# 备份时,压缩备份文件
[root@mysql-yum ~]# mysqldump -uroot -p123456 -B db1 | gzip > /backup/mysql/db1_3.sql.g
# 同时备份多个数据库
[root@mysql-yum ~]# mysqldump -uroot -p123456 -B db1 db2 | gzip > /backup/mysql/db1_2.sql.gz# 查看备份文件
[root@mysql-yum ~]# ll /backup/mysql/
total 28
-rw-r--r-- 1 root root 2196 Jan 19 09:30 db1
-rw-r--r-- 1 root root 5301 Jan 19 09:18 db1_1.sql
-rw-r--r-- 1 root root 5435 Jan 19 09:19 db1_2.sql
-rw-r--r-- 1 root root 2195 Jan 19 09:32 db1_2.sql.gz
-rw-r--r-- 1 root root 1859 Jan 19 09:25 db1_3.sql.gz

恢复方式

# 删除数据库db1、db2
mysql> drop database db1;
Query OK, 3 rows affected (0.36 sec)
mysql> drop database db2;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)# 恢复数据
--- 方案一 直接恢复
[root@mysql-yum mysql]# zcat db1_2.sql.gz | mysql -uroot -p123456
# 查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)--- 方案二 先解压,在恢复
[root@mysql-yum mysql]# gzip -d db1_2.sql.gz
[root@mysql-yum mysql]# mysql -uroot -p123456 < db1_2.sql
# 查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)--- 方案三 直接在mysql 命令行恢复
[root@mysql-yum mysql]# gzip -d db1_2.sql.gz
mysql> source /backup/mysql/db1_2.sql--- 方案四 备份所有的数据库
[root@mysql-yum mysql]# mysqldump -uroot -p123456 -A -B > /backup/mysql/all.sql--- 方案五 备份表结构
[root@mysql-yum mysql]# mysqldump -uroot -p123456 -B -d db1 > db1.sql--- 备份数据库中的指定表
[root@mysql-yum mysql]# mysqldump -uroot -p123456 db2 student > db2_student.sql--- 在mysql-cli中恢复
mysql> source /backup/mysql/all_databases.sql

二、增量备份方案

创建数据库、表、插入数据

mysql> create database it;
mysql> CREATE TABLE `Student` (
`Sno` int(10) NOT NULL COMMENT '学号', `Sname` varchar(16) NOT NULL COMMENT
'姓名',
`Ssex` char(2) NOT NULL COMMENT '性别', `Sage` tinyint(2) NOT NULL DEFAULT '0'
COMMENT '学生年龄',
`Sdept` varchar(16) DEFAULT 'NULL' COMMENT '学生所在系别', PRIMARY KEY (`Sno`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
表中插入数据
mysql> INSERT INTO `Student` VALUES (1, '陆亚', '男', 24, '计算机网络'),(2, 'tom', '男',
26, '英语'),(3, '张阳', '男', 21, '物流管理'), (4, 'alex', '女', 22, '电子商务');mysql> select * from it.Student;
+-----+----------+------+------+-----------------+
| Sno | Sname    | Ssex | Sage | Sdept           |
+-----+----------+------+------+-----------------+
|   1 | 陆亚     | 男   |   24 | 计算机网络      |
|   2 | tom      | 男   |   26 | 英语            |
|   3 | 张阳     | 男   |   21 | 物流管理        |
|   4 | alex     | 女   |   22 | 电子商务        |
|   5 | xumubin  | 男   |   29 | 中文专业        |
|   6 | wangzhao | 男   |   21 | 导弹专业        |
+-----+----------+------+------+-----------------+
6 rows in set (0.00 sec)

完全备份

[root@mysql-yum mysql]# mysqldump -uroot -p123456 -F -B it | gzip > /backup/mysql/mysql_backup_`date +%F`.sql.gz
[root@mysql-yum mysql]# ll mysql_backup_2021-01-19.sql.gz
-rw-r--r-- 1 root root 973 Jan 19 12:01 mysql_backup_2021-01-19.sql.gz

插入数据

INSERT INTO Student values(0005,'xumubin','男',29,'中文专业'),
(0006,'wangzhao','男',21,'导弹专业');

删除it数据库

mysql> drop database it;

恢复完全备份

[root@mysql-yum mysql]# zcat mysql_backup_2021-01-19.sql.gz | mysql -uroot -p123456

恢复增量备份

[root@mysql-yum mysql]# cp /var/lib/mysql/mysql-bin.000004 .
[root@mysql-yum mysql]# mysqlbinlog mysql-bin.000004 > bin_log.sql
[root@mysql-yum mysql]# mysql -uroot -p123456 < bin_log.sql

备份完成

mysql> select * from it.Student;
+-----+----------+------+------+-----------------+
| Sno | Sname    | Ssex | Sage | Sdept           |
+-----+----------+------+------+-----------------+
|   1 | 陆亚     | 男   |   24 | 计算机网络      |
|   2 | tom      | 男   |   26 | 英语            |
|   3 | 张阳     | 男   |   21 | 物流管理        |
|   4 | alex     | 女   |   22 | 电子商务        |
|   5 | xumubin  | 男   |   29 | 中文专业        |
|   6 | wangzhao | 男   |   21 | 导弹专业        |
+-----+----------+------+------+-----------------+
6 rows in set (0.00 sec)

时间点恢复

# 设置增量恢复的时间段
[root@mysql-yum mysql]# mysqlbinlog mysql-bin.000004 --start-datetime='2021-01-19 12:01:19' --stop-datetime='2021-01-19 12:07:19' -r time.sql
[root@mysql-yum mysql]# ll time.sql
-rw-r----- 1 root root 2162 Jan 19 15:08 time.sql
# 删除数据库
mysql> drop database it;
Query OK, 1 row affected (0.05 sec)
# 完全恢复
[root@mysql-yum mysql]# zcat mysql_backup_2021-01-19.sql.gz | mysql -uroot -p123456
# 增量恢复
[root@mysql-yum mysql]# mysql -uroot -p123456 < time.sql

位置点恢复

# 设置增量恢复的时间段
[root@mysql-yum mysql]# mysqlbinlog mysql-bin.000004 --start-position=4 --stop-position=476 -r post.sql
[root@mysql-yum mysql]# ll post.sql
-rw-r----- 1 root root 2162 Jan 19 15:26 post.sql
# 删除数据库
mysql> drop database it;
Query OK, 1 row affected (0.05 sec)
# 完全恢复
[root@mysql-yum mysql]# zcat mysql_backup_2021-01-19.sql.gz | mysql -uroot -p123456
# 增量恢复
[root@mysql-yum mysql]# mysql -uroot -p123456 < post.sql

三、GTID 备份

开启GTID

[root@mysql-yum mysql]# vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true
[root@mysql-yum mysql]# systemctl restart mysqld

创建gtid数据库、表

mysql> create database gtid;
mysql> use gtidmysql> create table t1(id int);
mysql> begin;
mysql> insert into t1 values(1);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
mysql> flush logs;mysql> create table t2(id int);
mysql> begin;
mysql> insert into t2 values(1);
mysql> commit;
mysql> flush logs;mysql> create table t3;
mysql> begin;
mysql> insert into t3 values(1);
mysql> commit;
mysql> flush logs;

查看gtid数据库的起始GTID

查看gtid数据库的末尾GTID

binlog 截取日志

# 停止bin_log日志记录
mysql> set sql_log_bin=0;
[root@mysql-yum mysql]# mysqlbinlog --include-gtids='bd01e960-562a-11eb-80d6-000c293e3782:6-12' mysql-bin.000008 mysql-bin.000009 mysql-bin.000010 --skip-gtids -r /backup/mysql/gtid.sql
[root@mysql-yum mysql]# ll /backup/mysql/gtid.sql
-rw-r----- 1 root root 5132 Jan 19 23:47 /backup/mysql/gtid.sql

恢复gtid数据库

[root@mysql-yum mysql]# mysql -u root -p123456 < /backup/mysql/gtid.sql
mysql> source /backup/mysql/gtid.sql

开启bin_log日志记录

mysql> set sql_log_bin=0;

查看备份效果

mysql> show tables from gtid;
+----------------+
| Tables_in_gtid |
+----------------+
| t1             |
| t2             |
| t3             |
+----------------+
3 rows in set (0.00 sec)mysql> select * from gtid.t1;
+------+
| id   |
+------+
|    1 |
|    1 |
+------+
2 rows in set (0.00 sec)mysql> select * from gtid.t2;
+------+
| id   |
+------+
|    1 |
|    1 |
+------+
2 rows in set (0.00 sec)mysql> select * from gtid.t3;
+------+
| id   |
+------+
|    1 |
|    1 |
+------+
2 rows in set (0.00 sec)

四、mydumper 备份

源码部署mydumper

# 上传mydumper源码包
[root@mysql-yum ~]# ll mydumper-0.9.1.tar.gz
-rw-r--r-- 1 root root 44463 Jan 18 11:05 mydumper-0.9.1.tar.gz
[root@mysql-yum mysql]# tar xf mydumper-0.9.1.tar.gz -C /usr/local/src/
# 安装编译环境、解决依赖关系
[root@mysql-yum mysql]# yum install gcc gcc-c++ make cmake -y
[root@mysql-yum mysql]# yum install  glib2-devel mysql-devel zlib-devel pcre-devel -y
# cmake
[root@mysql-yum mysql]# cd /usr/local/src
[root@mysql-yum mydumper-0.9.1]# cmake .
# make & make install
[root@mysql-yum mysql]# make
[root@mysql-yum mysql]# make install

备份

# mydumper工具备份
[root@mysql-yum ~]# mydumper -u root -p 123456 -B it -o /mysql_back
[root@mysql-yum ~]# ll /mysql_back/
total 16
-rw-r--r-- 1 root root  61 Jan 19 17:14 it-schema-create.sql
-rw-r--r-- 1 root root 420 Jan 19 17:14 it.Student-schema.sql
-rw-r--r-- 1 root root 354 Jan 19 17:14 it.Student.sql
-rw-r--r-- 1 root root 137 Jan 19 17:14 metadata# mydumper工具备份,同时压缩
[root@mysql-yum ~]# mydumper -u root -p 123456 -B it -c -o /mysql_back
[root@mysql-yum ~]# ll /mysql_back/
total 16
-rw-r--r-- 1 root root  81 Jan 19 17:19 it-schema-create.sql.gz
-rw-r--r-- 1 root root 299 Jan 19 17:19 it.Student-schema.sql.gz
-rw-r--r-- 1 root root 307 Jan 19 17:19 it.Student.sql.gz
-rw-r--r-- 1 root root 137 Jan 19 17:19 metadata

恢复文件

[root@mysql-yum ~]# myloader -u root -p 123456 -B it -o -d /mysql_back/

备份表

[root@mysql-yum ~]# mydumper -u root -p 123456 -B db2 -T student,course -o /backup/tables

恢复表

[root@mysql-yum ~]# myloader -u root -p 123456 -d /backup/tables/ -o -B db2

五、LVM 快照备份

添加新的磁盘,作为LVM存储

创建lvm、格式化

# 查看系统磁盘分区信息
[root@mysql-yum ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk
sr0              11:0    1  4.5G  0 rom  /mnt
# 创建lvm
[root@mysql-yum ~]# vgcreate mysql /dev/sdb
[root@mysql-yum ~]# lvcreate -n lv_mysql -L 4G mysq
# 格式化lvm分区
[root@mysql-yum ~]# mkfs.xfs /dev/mysql/lv_mysql
# 查看分区
[root@mysql-yum ~]# lsblk  -l
NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda              8:0    0   20G  0 disk
sda1             8:1    0    1G  0 part /boot
sda2             8:2    0   19G  0 part
centos-root    253:0    0   17G  0 lvm  /
centos-swap    253:1    0    2G  0 lvm  [SWAP]
sdb              8:16   0   10G  0 disk
mysql-lv_mysql 253:2    0    4G  0 lvm
sr0             11:0    1  4.5G  0 rom  /mnt
# 备份数据
[root@mysql-yum ~]# cd /var/lib/mysql
[root@mysql-yum mysql]# tar czf /backup/mysql/mysql.tar.gz *
# 挂载mysql数据目录到lvm分区
[root@mysql-yum mysql]# mount /dev/mapper/mysql-lv_mysql /var/lib/mysq
# 解压数据到mysql目录
[root@mysql-yum mysql]# tar xf /backup/mysql/mysql.tar.gz -C /var/lib/mysql
# 查看磁盘挂载信息
[root@mysql-yum mysql]# df -h
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    898M     0  898M   0% /dev
tmpfs                       910M     0  910M   0% /dev/shm
tmpfs                       910M  9.5M  901M   2% /run
tmpfs                       910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root      17G  4.0G   14G  24% /
/dev/sr0                    4.5G  4.5G     0 100% /mnt
/dev/sda1                  1014M  151M  864M  15% /boot
tmpfs                       182M     0  182M   0% /run/user/0
/dev/mapper/mysql-lv_mysql  4.0G  224M  3.8G   6% /var/lib/mysql
# 给数据库加读锁
mysql> flush table with read lock;
Query OK, 0 rows affected (0.00 sec)
# 创建快照
[root@mysql-yum mysql]# lvcreate -n lv_mysql_s -L 500M -s /dev/mysql/lv_mysql
# 解锁数据库
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
# 创建快照挂载点目录、挂载
[root@mysql-yum mysql]# mkdir /mnt/mysql/ -p
[root@mysql-yum mysql]# mount -o nouuid /dev/mysql/lv_mysql_s /mnt/mysql/
# 查看挂载情况
[root@mysql-yum mysql]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
devtmpfs                      898M     0  898M   0% /dev
tmpfs                         910M     0  910M   0% /dev/shm
tmpfs                         910M  9.6M  901M   2% /run
tmpfs                         910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root        17G  4.0G   14G  24% /
/dev/sr0                      4.5G  4.5G     0 100% /mnt
/dev/sda1                    1014M  151M  864M  15% /boot
tmpfs                         182M     0  182M   0% /run/user/0
/dev/mapper/mysql-lv_mysql    4.0G  231M  3.8G   6% /var/lib/mysql
/dev/mapper/mysql-lv_mysql_s  4.0G  231M  3.8G   6% /mnt/mysql/

查看备份效果

# 打包备份快照文件
[root@mysql-yum ~]# mkdir /back
[root@mysql-yum mysql]# cd
[root@mysql-yum ~]# cd /mnt/mysql/
[root@mysql-yum mysql]# tar czf /back/mysql.tar.gz *# 停止数据库服务
[root@mysql-yum ~]# systemctl stop mysqld
# 删除数据库目录文件
[root@mysql-yum ~]# cd /var/lib/mysql
[root@mysql-yum mysql]# rm -rf *# 恢复数据
[root@mysql-yum mysql]# tar xf /back/mysql.tar.gz#启动数据库服务
[root@mysql-yum mysql]# systemctl start mysqld# 查看数据库中的数据
mysql> select * from db2.student;
+--------------+-----------+---------+---------+-----------+--------------+
| stu_id       | stu_name  | stu_sex | stu_age | stu_major | stu_college  |
+--------------+-----------+---------+---------+-----------+--------------+
| 201804550101 | 郭奎      | 男      |      22 | 计科      | 信工学院     |
| 201804550102 | 吕宇航    | 男      |      18 | 计科      | 信工学院     |
| 201804550103 | 张豪辉    | 女      |      19 | 计科      | 信工学院     |
| 201804550107 | 丁志杰    | 男      |      17 | 金融学    | 金贸学院     |
| 201804550109 | 范伟      | 男      |      19 | 金融学    | 金贸学院     |
| 201804550116 | 张依婷    | 女      |      17 | 大数据    | 信工学院     |
| 201804550120 | 张维      | 男      |      19 | 计科      | 信工学院     |
| 201804550121 | 朱柳阳    | 女      |      20 | 计科      | 信工学院     |
| 201804550144 | 谭兵炎    | 男      |      20 | 大数据    | 信工学院     |
| 201804550153 | 杨志强    | 男      |      17 | 大数据    | 信工学院     |
+--------------+-----------+---------+---------+-----------+--------------+
10 rows in set (0.01 sec)

六、xtrabackup 备份

xtrabackup 部署

[root@mysql-yum ~]# yum install percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm perl-DBD-MySQL-4.023-6.el7.x86_64.rpm -y

1、完全备份

备份数据

[root@mysql-yum ~]# innobackupex -u root -p 123456 --no-timestamp /backup/mysql/full_$(date +%F)
[root@mysql-yum ~]# ll /backup/mysql/
total 0
drwxr-x--- 7 root root 218 Jan 20 14:35 full_2021-01-20

恢复数据

# 应用日志文件的数据
[root@mysql-yum ~]# innobackupex -u root -p 123456 --apply-log /backup/mysql/full_2021-01-20/
# 停止mysql服务
[root@mysql-yum ~]# systemctl stop mysqld
# 删除mysql数据目录中的文件
[root@mysql-yum ~]# rm -rf /var/lib/mysql/*
# 恢复数据
[root@mysql-yum ~]# innobackupex --copy-back /backup/mysql/full_2021-01-20/
# 修改目录所属者、所属组
[root@mysql-yum ~]# chmod -R mysql.mysql /var/lib/mysql/*
# 启动mysqld服务
[root@mysql-yum ~]# systemctl start mysql

查看mysql数据库的数据

2、增量备份

备份数据

# 插入数据
mysql> insert into student-> values('907','王老六','男','1999','会计','陕西省咸阳市');# 完全备份innobackupex -u root -p 123456 --no-timestamp /backup/mysql/full_$(date +%F)
# 增量备份
[root@mysql-yum ~]# innobackupex --incremental -u root -p 123456 --no-timestamp /backup/mysql/incr_1 --incremental-basedir=/backup/mysql/full_2021-01-20
# 插入数据
mysql> insert into student-> values('908','找小花','女','1994','工商','陕西省延安市');
# 再次增量备份
[root@mysql-yum ~]# innobackupex --incremental -u root -p 123456 --no-timestamp /backup/mysql/incr_2 --incremental-basedir=/backup/mysql/incr_1

恢复数据

# 恢复全备
[root@mysql-yum ~]# innobackupex -u root -p 123456 --apply-log --redo-only /backup/mysql/full_2021-01-20/
# 恢复增量备份
[root@mysql-yum ~]# innobackupex -u root -p 123456 --apply-log --redo-only /backup/mysql/full_2021-01-20/ --incremental-dir=/backup/mysql/incr_1
# 再次恢复增量备份
[root@mysql-yum ~]# innobackupex -u root -p 123456 --apply-log --redo-only /backup/mysql/full_2021-01-20/ --incremental-dir=/backup/mysql/incr_2# 停止数据库
[root@mysql-yum ~]# systemctl stop mysqld
# 删除数据库目录文件
[root@mysql-yum ~]# rm -rf /var/lib/mysql/*
# 还原数据到数据库数据目录中
innobackupex -u root -p 123456 --copy-back /backup/mysql/full_2021-01-20/
# 修改数据库文件所属主、所属组
[root@mysql-yum ~]# chown -R mysql.mysql /var/lib/mysql/*

查看mysql数据库的数据

MySQL 案例实战--MySQL 数据库 之 温备份 热备份相关推荐

  1. MySQL 案例实战--MySQL 数据库 之 冷备份

    MySQL 数据库 之 冷备份 前言 一.数据库备份类型 二.数据库备份的内容 三. MySQL 数据库 之 冷备份 1.环境准备 2.备份要求 3.备份流程 前言 本环境是基于 Centos 7.8 ...

  2. MySQL 案例实战--MySQL 基于Mycat实现读写分离

    MySQL 基于Mycat实现读写分离 前言 一.什么是读写分离? 二.MySQL 读写分离解决方案 三.MySQL 基于Mycat实现读写分离 四.Mycat-web 管理部署 前言 本环境是基于 ...

  3. MySQL 案例实战--MySQL数据库 存储过程 存储函数

    MySQL数据库 存储过程 & 存储函数 前言 一.什么是存储过程 & 存储函数 二.存储过程的创建和调用 三.存储函数的创建和调用 前言 本环境是基于 Centos 7.8 系统构建 ...

  4. MySQL 案例实战--MySQL数据库 单表查询 一

    前言 本环境是基于 Centos 7.8 系统构建MySQL-5.7.14 具体构建,请参考 MySQL-5.7.14 环境构建 素材准备: DROP TABLE IF EXISTS `course` ...

  5. mysql 登录默认实例_【MySQL案例】mysql本机登录-S失灵_mysql

    [mysql案例]mysql本机登录-S失效 1.1.1. mysql本机登录mysql时,-S参数失效 [环境描述] mysql5.5.14 [问题描述] 配置了多实例 实例1 实例2 datadi ...

  6. 徐无忌MySQL笔记:案例实战:如何实现MySQL数据库的读写分离?

    徐无忌MySQL笔记:案例实战:如何实现MySQL数据库的读写分离? 完成:第一遍 1.理想的主从架构实现的效果是怎样的? 主库负责所有读写操作,从库只实现对主库备份功能,这样的主从架构性价比是很低的 ...

  7. 1 shell备份数据库MYSQL案例

    SHELL编程实战MYSQL备份脚本(编程思路) 1.备份MYSQL数据库,备份的工具的选择: 数据量小于100G使用全备,基于mysqldump工具备份,备份会锁表: 数据量大于100G使用增量备份 ...

  8. 【数据库数据恢复】MySQL数据库误删除未备份的数据恢复案例

    MySQL数据库属于关系型数据库.SQL是一种用于操作关系型数据库的结构化语言.关系型数据库就是指在关系模型的基础上建立起来的数据库,是一种借助了集合代数等一些数学方法和数学概念处理数据的数据库. M ...

  9. MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)

    xtrabackup Percona 官网:www.percona.com percona-server InnoDB --> XtraDB Xtrabackup percona提供的mysql ...

最新文章

  1. WCF netTcpBinding寄宿到IIS7
  2. python 文件写入多个参数_pandas 把数据写入txt文件每行固定写入一定数量的值方法...
  3. 大牛手把手教你!2021大厂Java面试经历
  4. Skywalking-11:Skywalking查询协议——案例分析
  5. 使用jsonEditor打造一个复杂json编辑器
  6. redlock java_分布式Redis的分布式锁Redlock
  7. python eval函数_Python基础元素语法总结
  8. Dubbo + Zookeeper 简单搭建
  9. 多张DXF格式图纸网页上转换成PDF格式如何操作?
  10. RedHat7可视化图形界面安装
  11. ubuntu安装公式编辑器mathtype, wine中文乱码,ubuntu中文字体
  12. 华为hcie认证中-VxLAN 网管划分
  13. 【附源码】Python计算机毕业设计汽车租赁管理系统
  14. java multi tenancy_java工程積累——saas之multi-tenancy解析
  15. 苹果手机总是提示系统更新怎么办?
  16. 纯HTML和CSS实现精美点赞效果
  17. MySQL 不等于null或空格
  18. 如何写出和阿里大佬一样高效优雅的打码
  19. 视频webm怎么转换成mp4?
  20. 计算机屏幕总闪烁,电脑屏幕总是闪烁怎么解决

热门文章

  1. 细数网易云音乐上那些值得收藏的民谣歌单。
  2. jenkins-deleteDir报错(FilePath is missing)
  3. 【CSDN传疯了】史上最强Opencv神技——带你体会AI魅力,揭秘人脸检测识别与猫脸检测技术哦~
  4. python 生成随机矩阵和随机数
  5. 直呼内行,华为云桌面就是这么专业
  6. 拼多多算法机制,微积分的实际应用
  7. Java使用ffmpeg去除图片水印
  8. 论文笔记notion模板
  9. 淘宝/天猫店铺oAuth2.0订单同步接口:Taobao.user.seller.get 查询淘宝卖家用户信息接口接入说明
  10. 从“大数据中的年轻人”看《后浪》为什么被批判?