mysql 5.7 数据库备份_MySQL5.7.20数据库备份与恢复

MySQL数据库备份与恢复

·

####造成数据丢失的原因####

程序错误

人为操作错误

运算错误

磁盘故障

灾难(如火灾、地震)和盗窃

·

####物理与逻辑的角度####

1、物理备份:

冷备份:在数据关闭的状态下运行

热备份:在数据库运行的状态时进行备份操作,该备份方法依赖数据库日志文件。

温备份:数据局锁定表格(可以读不可以写)的状态年备份数据库

2、逻辑备份:

逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,表示为逻辑数据结构(create database、create tabale)

和内容(insert语句或分割文本文件)的信息

·

####数据库的备份策略角度####

1、完全备份:

每次对数据库进行完整的备份,即对整个数据的备份,数据库结构和文件结构备份。保存的是完整时刻的数据库

2、差异备份

备份那些自从上次完整备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份的数据量会越来越大,

恢复数据只是恢复上次的完整备份和最近一次的差异备份。

3、增量备份

只有那些在上次完全备份或者增量备份后被修改的文件才会备份,以上次完成整备份,或者上次的增量备份的时间点,

仅备份这之间的数据变化,因而备份的数据量小,占用空间下,备份数据速度快,但恢复时候,需要从上次的完整备份

开始到最后一次的增量备份之间所有的增量依次恢复,如中间某次的恢复数据备份损坏,将导致数据的丢失。

·

#####常见的备份方法######

1、物理冷备份

tar命令

·

2、专用备份工具

mysqldump

Mysqlhotcopy

·

3、二进制日志

·

4、第三方工具备份

Percona XtraBackup

Xtrabackup、innobackupex、xbstream

·

#############MySQL数据库完全备份操作###############

·

1物理冷备份与恢复(tar命令直接打包数据库文件夹)

备份数据库:

·

systemctl stop mysqld ###关闭数据库

·

mkdir /backup ###在根下新建个backup目录

·

####/usr/local/mysql/data备份压缩

tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/

·

##模拟故障

mkdir /bak ####在根下新建bak目录

mv /usr/local/mysql/data/ /bak/ ####将目录data数据移动到bak 里面去

·

##数据库恢复

mkdir /restore ####根目录新建restore 目录

tar xzvf /backup/mysql_all-2018-08-12.tar.gz -C /restore/ #####将备份数据库解压到/restore目录下

·

mv /restore/usr/local/mysql/data/ /usr/local/mysql/ ####将备份数据移动到/usr/local/mysql中

systemctl start mysqld ####启动mysql数据库

systemctl status mysqld ####查看mysql数据库启动状态 ,日志文件显示正常。

● mysqld.service - MySQL Server

Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

Active: active (running) since 日 2018-08-12 22:48:20 CST; 7s ago

Docs: man:mysqld(8)

http//dev.mysql.com/doc/refman/en/using-systemd.html

Process: 2036 ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)

Process: 2016 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)

Main PID: 2039 (mysqld)

CGroup: /system.slice/mysqld.service

└─2039 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mys...

·

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.795875Z 0....

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.795889Z 0...;

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.795911Z 0....

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.812257Z 0...s

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.812564Z 0....

8月 12 22:48:20 localhost.localdomain mysqld[2036]: Version: '5.7.20' socket: '/...n

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.812584Z 0....

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.812591Z 0...s

8月 12 22:48:20 localhost.localdomain mysqld[2036]: 2018-08-12T14:48:20.826263Z 0...s

8月 12 22:48:20 localhost.localdomain systemd[1]: Started MySQL Server.

Hint: Some lines were ellipsized, use -l to show in full.

·

####################mysqldump备份与恢复####################

将指定的库、表、或全部的库导出为SQL脚本

·

#####备份操作#####

mysqldump备份需要和mysql进行数据交互,如果关闭mysql 则无法备份和恢复

mysqldump [选项] 库名 [表名1] [表名2] … > /备份路径/备份文件名

mysqldump [选项] --databases 库名1 [库名2] … > /备份路径/备份文件名

mysqldump [选项] --all-databases > /备份路径/备份文件名

·

####备份数据路mysql中的user表,文件保存在当前操作目录下面

[root@localhost /]# mysqldump -u root -p mysql user >mysql-user.sql

Enter password: ###输入密码abc123

·

####备份auth数据库,文件保存在当前操作目录下面

[root@localhost /]# mysqldump -u root -p --databases auth >auth.sql

Enter password: ####输入密码abc123

··

·

####恢复操作

mysql [选项] [库名] [表名] < /备份路径/备份文件名

·

####表恢复####

[root@localhost /]# mysql -u root -p

Enter password:

mysql> show databases; ###查看数据库####

+--------------------+

| Database |

+--------------------+

| information_schema |

| auth |

| bdqn |

| myadm |

| mysql |

| performance_schema |

| sys |

·

mysql> create database text ; ####新建数据库text ,导表用###

Query OK, 1 row affected (0.00 sec)

mysql> exit

·

[root@localhost opt]# mysql -u root -p text < mysql-user.sql ###将表导入text

Enter password:

·

[root@localhost /]# mysql -u root -p -e 'show tables from text' #######验证输出结果####

Enter password:

+----------------+

| Tables_in_text |

+----------------+

| user | ####以被导入

+----------------+

·

####数据库恢复#####

[root@localhost /]# mysql -u root -p -e 'drop database auth' ######模拟故障删除auth数据库

Enter password:

[root@localhost /]# mysql -u root -p -e 'show databases' ######查看所有数据库确认auth被删除

Enter password:

+--------------------+

| Database |

+--------------------+

| information_schema |

| bdqn |

| myadm |

| mysql |

| performance_schema |

| sys |

| text |

·

[root@localhost /]# mysql -u root -p < ./auth.sql ####导入数据库auth

Enter password:

[root@localhost /]# mysql -u root -p -e 'show databases' ######查看所有数据库确认auth被导入

Enter password:

+--------------------+

| Database |

+--------------------+

| information_schema |

| auth |

| bdqn |

| myadm |

| mysql |

| performance_schema |

| sys |

| text |

+--------------------+

·

·

·

·

##########MySQL数据库增量备份恢复##############

1、增量备份的特点

与完全备份完全不同,增量备份没有重复数据,备份量不大,时间短;但其恢复麻烦,需要上次完成完全备份及备份之后的所有增量备份才能恢复。

·

2、MySQL数据库二进制日志对备份的意义

二进制日志保存了所有更新或者可能更新数据的操作。二进制日志在启动mysql服务器后开始记录,并在文件达到二进制日志所设置的最大值

或者接受到flush logs命令后重新创建新的日志文件,生成二进制的文件序列,并及时把这些日志文件保存到安全的存储位置,即可完成一个时间段

的增量备份

·

[root@localhost mysql]# vim /etc/my.cnf #####编辑my.cnf配置文件

[client]

port = 3306

default-character-set=utf8

socket = /usr/local/mysql/mysql.sock

·

[mysql]

port = 3306

default-character-set=utf8

socket = /usr/local/mysql/mysql.sock

·

[mysqld]

user = mysql

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

character_set_server=utf8

pid-file = /usr/local/mysql/mysqld.pid

socket = /usr/local/mysql/mysql.sock

server-id = 1

log-bin=/usr/local/mysql/data/mysql-bin ####这个地方开启二进制日志功能

·

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

·

[root@localhost mysql]# systemctl restart mysqld ####重启数据库

·

[root@localhost ~]# ll /usr/local/mysql/data/

总用量 122924

-rw-r----- 1 mysql mysql 56 8月 9 16:16 auto.cnf

-rw-r----- 1 mysql mysql 308 8月 15 05:50 ib_buffer_pool

-rw-r----- 1 mysql mysql 12582912 8月 15 05:50 ibdata1

-rw-r----- 1 mysql mysql 50331648 8月 15 05:50 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 8月 9 16:16 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 8月 15 05:50 ibtmp1

drwxr-x--- 2 mysql mysql 4096 8月 9 16:16 mysql

-rw-r----- 1 mysql mysql 154 8月 15 05:50 mysql-bin.000001 ####二进制日志文件

-rw-r----- 1 mysql mysql 39 8月 15 05:50 mysql-bin.index

drwxr-x--- 2 mysql mysql 8192 8月 9 16:16 performance_schema

drwxr-x--- 2 mysql mysql 8192 8月 9 16:16 sys

·

·

·

####################增量恢复的方法######################

#####一般恢复####

mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p

·

####基于位置的恢复###

1、恢复数据到指定位置

mysqlbinlog --stop-position=’操作 id’ 二进制日志 |mysql -u 用户名 -p 密码

·

·

2、从指定的位置开始恢复数据

mysqlbinlog --start-position=’操作 id’ 二进制日志 |mysql -u 用户名 -p 密码

·

#####基于时间点的恢复#####

1、从日志开头截止到某个时间点的恢复

mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小时:分钟:秒’ 二进制日志 | mysql -u 用户名 -p 密码

·

2、从某个时间点到日志结尾的恢复

mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒’ 二进制日志 | mysql -u 用户名 -p 密码

·

3、从某个时间点到某个时间点的恢复

mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒’ --stop-datetime=’年-月-日小时:分钟:秒’ 二进制日志 | mysql -u 用户名 -p 密码

·

·

#########mysql企业备份案例######

1、一般恢复(丢什么数据,补什么数据)

[root@localhost opt]# mysql -u root -p

Enter password:

mysql> create database client;

Query OK, 1 row affected (0.01 sec)

mysql> use client;

mysql> create table user_info(××× char(20) not null,姓名 char(20) not null,姓别 char(4),用户ID号 char(10) not null,资费 int(10));

mysql> insert into user_info values('000006','张三','男','016','10');

mysql> insert into user_info values('000007','李四','女','017','91');

mysql> insert into user_info values('000008','王五','女','018','23');

mysql> select * from user_info;

·

mysql> show master logs; ####查看当前数据库binlog文件

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000001 | 1492 |

+------------------+-----------+

1 row in set (0.00 sec)

·

·

·

·

2、进行一次完全备份

mysql> flush tables with read lock; #####备份前需要将数据库加读锁,防止数据在备份时写入。

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

·

[root@localhost ~]# mkdir /mysql_bak ###创建/mysql_bak 目录

·

[root@localhost opt]# mysqldump -u root -p client user_info >/mysql_bak/client_userinfo-$(date +%F).sql

Enter password:

[root@localhost ~]# ll /mysql_bak/

总用量 4

-rw-r--r-- 1 root root 2055 8月 15 05:55 client_userinfo-2018-08-15.sql

·

[root@localhost mysql_bak]# mysqladmin -u root -p flush-logs

[root@localhost ~]# ll /usr/local/mysql/data/

总用量 122928

-rw-r----- 1 mysql mysql 56 8月 9 16:16 auto.cnf

drwxr-x--- 2 mysql mysql 62 8月 15 06:04 client

-rw-r----- 1 mysql mysql 308 8月 15 06:03 ib_buffer_pool

-rw-r----- 1 mysql mysql 12582912 8月 15 06:04 ibdata1

-rw-r----- 1 mysql mysql 50331648 8月 15 06:04 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 8月 9 16:16 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 8月 15 06:05 ibtmp1

drwxr-x--- 2 mysql mysql 4096 8月 9 16:16 mysql

-rw-r----- 1 mysql mysql 1539 8月 15 06:05 mysql-bin.000001

-rw-r----- 1 mysql mysql 154 8月 15 06:05 mysql-bin.000002

-rw-r----- 1 mysql mysql 78 8月 15 06:05 mysql-bin.index

drwxr-x--- 2 mysql mysql 8192 8月 9 16:16 performance_schema

drwxr-x--- 2 mysql mysql 8192 8月 9 16:16 sys

·

·

·

3、继续录入新的内容并进行增量备份

[root@localhost mysql_bak]# mysql -u root -p

Enter password:

mysql> unlock tables; #######解除表锁。

Query OK, 0 rows affected (0.00 sec)

mysql> use client;

mysql> insert into user_info values('000009','赵六','男','019','37');

mysql> insert into user_info values('000010','孙七','男','020','36');

mysql> select from user_info;

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

| 000009 | 赵六 | 男 | 019 | 37 |

| 000010 | 孙七 | 男 | 020 | 36 |

+-----------+--------+--------+-------------+--------+

5 rows in set (0.00 sec)

·

mysql> exit

Bye

[root@localhost mysql_bak]# mysqladmin -u root -p flush-logs ###刷新日志文件

Enter password:

·

[root@localhost ~]# ll /usr/local/mysql/data

总用量 122932

-rw-r----- 1 mysql mysql 56 8月 9 16:16 auto.cnf

drwxr-x--- 2 mysql mysql 62 8月 15 06:04 client

-rw-r----- 1 mysql mysql 308 8月 15 06:03 ib_buffer_pool

-rw-r----- 1 mysql mysql 12582912 8月 15 06:07 ibdata1

-rw-r----- 1 mysql mysql 50331648 8月 15 06:07 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 8月 9 16:16 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 8月 15 06:05 ibtmp1

drwxr-x--- 2 mysql mysql 4096 8月 9 16:16 mysql

-rw-r----- 1 mysql mysql 1539 8月 15 06:05 mysql-bin.000001

-rw-r----- 1 mysql mysql 797 8月 15 06:07 mysql-bin.000002 ###增量备份所需要的数据在000002里面

-rw-r----- 1 mysql mysql 154 8月 15 06:07 mysql-bin.000003

-rw-r----- 1 mysql mysql 117 8月 15 06:07 mysql-bin.index

drwxr-x--- 2 mysql mysql 8192 8月 9 16:16 performance_schema

drwxr-x--- 2 mysql mysql 8192 8月 9 16:16 sys

·

·

[root@localhost ~]# cp /usr/local/mysql/data/mysql-bin.000002 /mysql_bak/

·

4、模拟误操作删除 user_info表

[root@localhost mysql_bak]# mysql -u root -p -e 'drop table client.user_info'

Enter password:

[root@localhost mysql_bak]# mysql -u root -p -e 'select from client.user_info'

Enter password:

ERROR 1146 (42S02) at line 1: Table 'client.user_info' doesn't exist

·

5、恢复操作

[root@localhost mysql_bak]# mysql -u root -p client < /mysql_bak/client_userinfo-2018-08-14.sql

Enter password:

[root@localhost mysql_bak]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

·

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

+-----------+--------+--------+-------------+--------+

·

·

[root@localhost ~]# mysqlbinlog --no-defaults /mysql_bak/mysql-bin.000002 |mysql -u root -p

Enter password:

[root@localhost ~]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

| 000009 | 赵六 | 男 | 019 | 37 |

| 000010 | 孙七 | 男 | 020 | 36 |

+-----------+--------+--------+-------------+--------+

·

·

·

######基于位置恢复#####

[root@localhost mysql_bak]# mysql -uroot -p -e 'drop table client.user_info' ### 删除表user_info

Enter password:

·

[root@localhost mysql_bak]# mysql -uroot -p -e 'select from client.user_info'

Enter password:

ERROR 1146 (42S02) at line 1: Table 'client.user_info' doesn't exist

·

·

·

[root@localhost mysql_bak]# mysql -u root -p client < /mysql_bak/client_userinfo-2018-08-14.sql

Enter password:

·

[root@localhost ~]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

+-----------+--------+--------+-------------+--------+

·

·

·

·

[root@localhost ~]# mysqlbinlog --no-defaults --base64-output=decode-rows -v /mysql_bak/mysql-bin.000002 ####--base64-output=decode-rows 64解码 ### -v 换行显示

·

·###########################################################################

·# at 293

#180815 6:07:34 server id 1 end_log_pos 359 CRC32 0x3ccdc62e Table_map: client.user_info mapped to number 221

·# at 359

#180815 6:07:34 server id 1 end_log_pos 421 CRC32 0x55f72453 Write_rows: table id 221 flags: STMT_END_F

·### INSERT INTO client.user_info

·### SET

·### @1='000009'

·### @2='赵六'

·### @3='男'

·### @4='019'

·### @5=37

·# at 421

#180815 6:07:34 server id 1 end_log_pos 452 CRC32 0x45fd2af6 Xid = 50

COMMIT/!/;

·# at 452

#180815 6:07:39 server id 1 end_log_pos 517 CRC32 0xa553503b Anonymous_GTID last_committed=1 sequence_number=2 rbr_only=yes

/!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED//!/;

SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/!/;

·# at 517

#180815 6:07:39 server id 1 end_log_pos 591 CRC32 0x02ad5ee9 Query thread_id=7 exec_time=0 error_code=0

SET TIMESTAMP=1534284459/!/;

BEGIN

/!/;

·# at 591

#180815 6:07:39 server id 1 end_log_pos 657 CRC32 0x3f478909 Table_map: client.user_info mapped to number 221

·# at 657

#180815 6:07:39 server id 1 end_log_pos 719 CRC32 0xb478e1c5 Write_rows: table id 221 flags: STMT_END_F

·### INSERT INTO client.user_info

·### SET

·### @1='000010'

·### @2='孙七'

·### @3='男'

·### @4='020'

·### @5=36

·# at 719

#180815 6:07:39 server id 1 end_log_pos 750 CRC32 0xe681426b Xid = 51

COMMIT/!/;

·# at 750

#180815 6:07:59 server id 1 end_log_pos 797 CRC32 0xbc922301 Rotate to mysql-bin.000003 pos: 4

SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /added by mysqlbinlog/ /!/;

DELIMITER ;

·# End of log file

/!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE/;

/!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0/;

########################################################################################·

·

[root@localhost ~]# mysqlbinlog --no-defaults --stop-position='657' /mysql_bak/mysql-bin.000002 |mysql -u root -p ####操作的节点附近即可

[root@localhost ~]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

| 000009 | 赵六 | 男 | 019 | 37 |

+-----------+--------+--------+-------------+--------+

·

#######

[root@localhost ~]# mysql -u root -p -e 'drop table client.user_info'

Enter password:

[root@localhost ~]# mysql -u root -p client < /mysql_bak/client_userinfo-2018-08-15.sql

Enter password:

[root@localhost ~]# mysqlbinlog --no-defaults --start-position='657' /mysql_bak/mysql-bin.000002 |mysql -u root -p ####操作的节点附近即可

Enter password:

[root@localhost ~]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

| 000010 | 孙七 | 男 | 020 | 36 |

+-----------+--------+--------+-------------+--------+

####提醒

基于位置恢复的操作,节点不要选择太靠近操作的节点,否则容易操作错误。

·

·

·

·

######基于时间恢复#####

mysqlbinlog --no-defaults --stop-datetime='2018-8-15 6:07:39' /mysql_bak/mysql-bin.000002 |mysql -u root -p

mysqlbinlog --no-defaults --start-datetime='2018-8-15 6:07:39' /mysql_bak/mysql-bin.000002 |mysql -u root -p

####列子###

[root@localhost ~]# mysql -u root -p -e 'drop table client.user_info'

Enter password:

[root@localhost ~]# mysql -u root -p client < /mysql_bak/client_userinfo-2018-08-15.sql

Enter password:

[root@localhost ~]# mysqlbinlog --no-defaults --stop-datetime='2018-8-15 6:07:39' /mysql_bak/mysql-bin.000002 |mysql -u root -p ######时间格式不能弄错

Enter password:

[root@localhost ~]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

| 000009 | 赵六 | 男 | 019 | 37 |

+-----------+--------+--------+-------------+--------+

·

·

####列子###

[root@localhost ~]# mysql -u root -p -e 'drop table client.user_info'

Enter password:

[root@localhost ~]# mysql -u root -p client < /mysql_bak/client_userinfo-2018-08-15.sql

Enter password:

[root@localhost ~]# mysqlbinlog --no-defaults --start-datetime='2018-8-15 15:33:48' /mysql_bak/mysql-bin.000002 |mysql -u root -p ######时间格式不能弄错

Enter password:

[root@localhost ~]# mysql -u root -p -e'select from client.user_info'

Enter password:

+-----------+--------+--------+-------------+--------+

| ××× | 姓名 | 姓别 | 用户ID号 | 资费 |

+-----------+--------+--------+-------------+--------+

| 000006 | 张三 | 男 | 016 | 10 |

| 000007 | 李四 | 女 | 017 | 91 |

| 000008 | 王五 | 女 | 018 | 23 |

| 000010 | 孙七 | 男 | 020 | 36 |

+-----------+--------+--------+-------------+--------+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql warning 日志_Mysql5.7.19安装后错误日志中有警告

警告1&#xff1a;secure_file_priv 配置项对数据导入导出的影响1、限制mysqld 不允许导入 | 导出mysqld --secure_file_privenullMySQL [ztjy]> select * from info_posts limit 10 into outfile /usr/local/src/info_posts_tmp.txt;ERROR 1290 (HY000): The MySQL server …

fscanf不读取_思考了一天,终于把matlab的fscanf中的sizeA搞清楚了

数值如12345等可以作为字符&#xff0c;所以以字符格式读取文件时&#xff0c;这些数字照样可以被读取 A fscanf(fileID,formatSpec) A fscanf(fileID,formatSpec,sizeA) 以上是fscanf的语法&#xff1b; sizeA起到的作用是限制&#xff0c;限制读取读取文件中数据的数量&…

linux开发板 pc 通讯_从51单片机到Linux 开发板运行hello world(教程4)

大家好&#xff0c;我是兔子。是一个嵌入式软硬件工程师。正在从单片机开发转岗Linux开发。这次教大家如何在Linux开发板上运行可执行文件。简单起见&#xff0c;不涉及到硬件。直接和教程2一样&#xff0c;能在PC虚拟机上运行hello world程序。当然开发板上也可以。1.Source I…

python decimal 转 float_python教程之二python数学运算

存储数据变量#两个变量交换值&#xff0c;通过第三个参数实现print(两个变量交换值&#xff0c;通过第三个参数实现); #第一种方法是通过第三个参数实现x5;#变量赋值y11; #变量赋值print(交换前,x,y);tempx;xy;ytemp;print(交换后,x,y);#两个变量交换值&#xff0c;更便捷的方法…

mysql 视图 动态sql_sql-server – 使用动态Sql创建视图

我正在尝试创建一个动态数据库创建脚本.有很多步骤,我们经常创建这个数据库,所以脚本看起来像这样.DECLARE databaseName nvarchar(100) DatabaseNameEXEC(/*A lot of database creation code built off of databaseName*/)除了我们在此数据库中创建的一个视图外,这一切都很好…

apache arm 交叉编译_移植apache2 ARM版 – 交叉编译apache2 | 学步园

下载apache2 http://apache.fayea.com/apache-mirror//httpd/httpd-2.4.6.tar.bz21. tar jxvf httpd-2.4.6.tar.bz22. cd httpd-2.4.63. ./configure --hostarm-linux --prefix/usr/local/arm/4.4.3 --with-apu/usr/local/arm/4.4.3/ --with-apr-util/usr/local/arm/4.4.3 --wi…

mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表

之前的几篇关于分表的&#xff0c;提到的分表策略不够详细&#xff0c;我在这篇中补充一些分表策略吧&#xff1a;按号段分&#xff1a;(1) user_id为区分&#xff0c;1&#xff5e;1000的对应table1&#xff0c;1001&#xff5e;2000的对应table2&#xff0c;以此类推&#xf…

mysql msdtc 不支持_IIS5.1安装后,不支持IIS的问题。(转)

(如果是ghost版本安装的xp或者win2003无法安装iis&#xff0c;那么你只需要下载本站从WINDOWS安装盘抽取的IIS安装文件&#xff0c;就可以安装IIS了&#xff0c;WINXPSP1 安装IIS 5&#xff0c; WINXP SP2 IIS5.1 &#xff0c;WIN2003安装IIS6&#xff0c;特别提示下菜鸟同志&a…

python中对象包含几个部分_python中包含对象类型的两个列表的交集

如果顺序无关紧要&#xff0c;请使用set.intersection&#xff1a;A [(1.1,2.2),(3.3,4.4),(5.5,6.6)]B [(1.1,2.2),(7.7,8.8),(3.3,4.4)]print(set(A).intersection(B))set([(3.3, 4.4), (1.1, 2.2)])或者将B设为集合&#xff0c;并在a上迭代保持公共元素&#xff1a;^{pr2}…

mysql 不会联想字段_你有没有被MySQL的这个bug坑过?

问题描述近期&#xff0c;线上有个重要Mysql客户的表在从5.6升级到5.7后&#xff0c;master上插入过程中出现"Duplicate key"的错误&#xff0c;而且是在主备及RO实例上都出现。以其中一个表为例&#xff0c;迁移前通过“show create table” 命令查看的auto increme…

mysql新增后默认返回值_mybatis insert、update 、delete默认返回值解释与如何设置返回表主键...

在使用mybatis做持久层时&#xff0c;insert、update、delete&#xff0c;sql语句默认是不返回被操作记录主键的&#xff0c;而是返回被操作记录条数&#xff1b;那么如果想要得到被操作记录的主键&#xff0c;可以通过下面的配置方式获取。针对Sequence主键而言&#xff0c;在…

mysql 主从 sql线程no_Mysql 主从同步 slave_sql_running 为no

背景之前搭建了主从&#xff0c;但没有设置读写分离&#xff0c;从库也能写数据。于是想测试下在从库写数据会导致同步怎么样。 结果发现&#xff0c;slave_sql_running为no&#xff0c;slava_IO_running仍然为yes.原因由于从库写数据&#xff0c;导致主从数据不一致&#xff0…

header python 环境信息_【关于header信息的构造】Python模拟登录出现乱码

使用Python模拟登录Z-Blog系统的后台时&#xff0c;如果构造的header信息如下&#xff0c;那么得到的结果将会乱码&#xff0c;如下图所示对应的错误的header信息如下&#xff1a;url "http://192.168.1.11/cmd.asp?actverify"request urllib2.Request(url)reques…

mysql 组内排序_mysql组内排序取最大值

最近业务反馈一个查询异常的问题&#xff0c;需要DBA对查询结果异常给出解释&#xff0c;并帮助他们解决该问题。问题本质是一个组内排序取最大值的问题&#xff0c;根据业务需求&#xff0c;我构建了测试用例测试用例--建表create table testorder(id int not null,no int not…

mysql索引抽密度_使用python脚本从abaqus输出数据库获取元素密度

属性关联如下&#xff1a;sectionAssignment将section连接到setset是{}的容器section将sectionAssignment连接到materialinstance连接到{}(可以来自另一个模型的部件)part连接到modelmodel连接到section如果可以&#xff0c;请使用.inp或.cae文件。下面的代码从一个打开的cae文…

python中plot和bar要求的格式不一样_在Python中matplotlib中匹配的图形大小,包括和不包含make_axes_locatable- divider colorbars...

我在22网格中有4个图形,但只希望右边的两个图形有条形(比例适用于行).我正在使用表格divider make_axes_locatable(ax)cax divider.append_axes("right", size"5%", pad0.05)plt.colorbar(im, caxcax)使颜色栏与这两个图的大小相匹配.然而,这使得两个带有…

禁用win10触摸屏手势_Win10平板边缘滑动手势大全及开启/关闭方法

Win10对于平板/触屏设备进行了特别优化&#xff0c;这体现在显示和操作等方面。对于操作方面&#xff0c;Windows10平板除了支持传统操作方法外&#xff0c;还有专门的边缘滑动手势。这些操作有别于之前的Win8/Win8.1&#xff0c;Win10边缘滑动操作共有以下四种形式&#xff1a…

java获取文件新增内容_关于java生成文件,立即又读这个文件但又找不到文件新增内容的问题...

展开全部写文件之后&#xff0c;应该有一个刷新流缓冲的flush()方法。该方法可以保证你可以读到你e69da5e6ba903231313335323631343130323136353331333332643238之前所写的内容。下面是我写的一个简单的测试用例&#xff1a;package test;import java.io.BufferedReader;import…

java的容器类有哪些实现方式_Java基础--容器类

面试官&#xff1a;Java的容器类你有什么了解吗&#xff1f;-&#xff1a;额&#xff0c;没有用过....面试官&#xff1a;你肯定用过&#xff0c;但你没有注意过....-&#xff1a;应该是吧....你知道什么是容器类吗&#xff1f;Java容器可以说是增强程序员编程能力的基本工具&a…

eclipse怎么导入java文件_eclipse怎么保存java文件?如何导入java文件?

eclipse开发工具很好用&#xff0c;是java开发人员的好帮手&#xff0c;但是一些新手java人员不知道eclipse怎么保存java文件?那么接下来&#xff0c;我们就来给大家讲解一下eclipse保存java文件的方法。Eclipse没有提供自动保存的功能&#xff0c;只能自己写脚本每隔多久保存…