MySQL逻辑备份
1.1 全备+binlog恢复
使用mysqldump备份所有数据库,并恢复。要求保持数据库的一致性的前提下尽量减少数据库的锁,然后用binlog前滚到指定时间点。
周一到周日,每天晚上22:00都备份了一个全备,某一天(周四)早上10:00数据库down了,怎么恢复到最新的时间点。
思路:周三晚上22:00通过全备恢复,周三晚上22:00-周四早上10:00通过binlog恢复
准备两台mysql服务器,不要是主从服务器。
1. 准备数据
mysql> create database cool;
Query OK, 1 row affected (0.00 sec)
mysql> use cool;
Database changed
mysql> create table cool (id int,name varchar(10));
Query OK, 0 rows affected (0.15 sec)
mysql> insert into cool values(1,'a'),(2,'b'),(3,'c');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
2. 备份数据库
假设周三晚上10:00进行了一个全备,如下:
[root@test opt]# mysqldump -uroot -ptest --set-gtid-purged=OFF --master-data=2 --single-transaction -A > /opt/full_$(date +%F).sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@test opt]# ls
full_2021-05-17.sql
3. 新建一个数据库及表
周三晚上十点到周四早上十点模拟新增数据。
mysql> create database t1;
Query OK, 1 row affected (0.00 sec)
mysql> use t1;
Database changed
mysql> create table t1(id int,name varchar(20));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1(id,name) values(1,'php'),(2,'java'),(3,'python');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from t1;
+------+--------+
| id | name |
+------+--------+
| 1 | php |
| 2 | java |
| 3 | python |
+------+--------+
3 rows in set (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec
4. 模拟故障删库
周四早上十点模拟故障删库t1
mysql> drop database t1;
Query OK, 1 row affected (0.01 sec)
5. 查找binlog的起点及终点
在故障的mysql服务器上查看周三晚上十点备份的binlog起点。
vi /opt/full_2021-05-17.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='slave-binlog.000002', MASTER_LOG_POS=234;
查看binlog终点
mysql> show master status;
+---------------------+----------+--------------+------------------+-------------------------------------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+--------------+------------------+-------------------------------------------------------------------------------------+
| slave-binlog.000002 | 840 | | | 18d11475-b5fd-11eb-9b94-000c29c40ee0:1-14,
79c2fe65-b621-11eb-a65a-000c29d77752:1-7 |
+---------------------+----------+--------------+------------------+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show binlog events in 'slave-binlog.000002';
+---------------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+---------------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------------------------+
| slave-binlog.000002 | 4 | Format_desc | 2 | 123 | Server ver: 5.7.32-log, Binlog ver: 4 |
| slave-binlog.000002 | 123 | Previous_gtids | 2 | 234 | 18d11475-b5fd-11eb-9b94-000c29c40ee0:1-14,
79c2fe65-b621-11eb-a65a-000c29d77752:1-4 |
| slave-binlog.000002 | 234 | Gtid | 2 | 299 | SET @@SESSION.GTID_NEXT= '79c2fe65-b621-11eb-a65a-000c29d77752:5' |
| slave-binlog.000002 | 299 | Query | 2 | 387 | create database t1 |
| slave-binlog.000002 | 387 | Gtid | 2 | 452 | SET @@SESSION.GTID_NEXT= '79c2fe65-b621-11eb-a65a-000c29d77752:6' |
| slave-binlog.000002 | 452 | Query | 2 | 562 | use `t1`; create table t1(id int,name varchar(20)) |
| slave-binlog.000002 | 562 | Gtid | 2 | 627 | SET @@SESSION.GTID_NEXT= '79c2fe65-b621-11eb-a65a-000c29d77752:7' |
| slave-binlog.000002 | 627 | Query | 2 | 697 | BEGIN |
| slave-binlog.000002 | 697 | Table_map | 2 | 743 | table_id: 154 (t1.t1) |
| slave-binlog.000002 | 743 | Write_rows | 2 | 809 | table_id: 154 flags: STMT_END_F |
| slave-binlog.000002 | 809 | Xid | 2 | 840 | COMMIT /* xid=656 */ |
| slave-binlog.000002 | 840 | Gtid | 2 | 905 | SET @@SESSION.GTID_NEXT= '79c2fe65-b621-11eb-a65a-000c29d77752:8' |
| slave-binlog.000002 | 905 | Query | 2 | 991 | drop database t1 |
+---------------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------------------------+
13 rows in set (0.00 sec)
所以可以知道,binlog的起点是234,终点为905
起点808终点1479
6. 截取binlog起点及终点的日志
[root@test data]# mysqlbinlog --skip-gtids --start-position=234 --stop-position=905 /data/mysql/data/slave-binlog.000002 > /opt/binlog.sql
#按时间截取是如下命令:
# mysqlbinlog slave-binlog.000002 --start-datetime='2021-05-19 22:00:00' --stop-datetime='2021-05-19 10:00:00' -r > /opt/binlog.sql
7. 临时库上恢复数据库到最新时间点
临时库上恢复全备+binlog,将全备文件及截取的binlog文件恢复到临时库上(另外一台临时服务器上)
[root@test data]# scp /opt/full_2021-05-17.sql root@192.168.137.18:/opt
root@192.168.137.18's password:
full_2021-05-17.sql 100% 913KB 10.5MB/s 00:00
[root@test data]# scp /opt/binlog.sql root@192.168.137.18:/opt
root@192.168.137.18's password:
binlog.sql 100% 1621 1.6MB/s 00:00
[root@www opt]# mysql -uroot -ptest
mysql> source /opt/full_2021-05-17.sql; #现在只是恢复到周三晚上十点。所以并没有周三晚上十点到周四早上十点的数据。即t1数据库。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cool |
| mysql |
| performance_schema |
| sys |
| test |
| wordpress |
+--------------------+
7 rows in set (0.00 sec)
mysql> source /opt/binlog.sql; #恢复周三晚上十点到周四早上十点新增的数据。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cool |
| mysql |
| performance_schema |
| sys |
| t1 |
| test |
| wordpress |
+--------------------+
8 rows in set (0.00 sec)
mysql> use t1;
Database changed
mysql> select * from t1;
+------+--------+
| id | name |
+------+--------+
| 1 | php |
| 2 | java |
| 3 | python |
+------+--------+
3 rows in set (0.00 sec)
1.2 binlog跳过某个操作进行恢复数据
a.创建一个数据库ceshi
b.在ceshi下创建一张表t1
c.插入5行任意数据
d.全备
e.插入两行数据,任意修改3行数据,删除一行数据
f.删除所有数据
g.再t1中又插入5行新数据,修改3行数据
需求,跳过f恢复表数据
1. 准备数据
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cool |
| mysql |
| performance_schema |
| sys |
| test |
| wordpress |
+--------------------+
7 rows in set (0.00 sec)
mysql> create database ceshi charset utf8mb4;
mysql> use ceshi;
mysql> create table ceshi(id int,name varchar(20));
mysql> insert into ceshi values(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
mysql> commit;
2. 备份数据库(全备)
[root@test ~]# mysqldump -uroot -ptest -A --master-data=2 --single-transaction -R -E --triggers > /opt/full_$(date +%F-%T).sql
[root@test ~]# vi /opt/full_2021-05-18-09\:27\:38.sql
SET @@GLOBAL.GTID_PURGED='18d11475-b5fd-11eb-9b94-000c29c40ee0:1-14,
1db8158e-b71d-11eb-917f-000c29d77752:1-14,
79c2fe65-b621-11eb-a65a-000c29d77752:1-4';
-- CHANGE MASTER TO MASTER_LOG_FILE='slave-binlog.000002', MASTER_LOG_POS=3605;
3. 插入及删除数据
e.插入两行数据,任意修改3行数据,删除一行数据
mysql> insert into ceshi values(11,'aa'),(22,'bb');
Query OK, 2 rows affected (0.07 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from ceshi;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | e |
| 11 | aa |
| 22 | bb |
+------+------+
7 rows in set (0.00 sec)
mysql> update ceshi set id=10 where id>4;
Query OK, 3 rows affected (0.09 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> select * from ceshi;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 10 | e |
| 10 | aa |
| 10 | bb |
+------+------+
7 rows in set (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from ceshi where id=4;
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from ceshi;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 2 | b |
| 3 | c |
| 10 | e |
| 10 | aa |
| 10 | bb |
+------+------+
6 rows in set (0.00 sec)
f.删除所有数据
mysql> delete from ceshi;
Query OK, 6 rows affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from ceshi;
Empty set (0.00 sec)
g.再ceshi表中又插入5行新数据,修改3行数据
mysql> insert into ceshi values(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> update ceshi set id=10 where id>2;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> commit;
mysql> select * from ceshi;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 2 | b |
| 10 | c |
| 10 | d |
| 10 | e |
+------+------+
5 rows in set (0.00 sec)
4. gtid起点与终点
mysql> show master status;
+---------------------+----------+--------------+------------------+--------------------------------------------------------------------------------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+--------------+------------------+--------------------------------------------------------------------------------------------------------------------------------+
| slave-binlog.000002 | 5333 | | | 18d11475-b5fd-11eb-9b94-000c29c40ee0:1-14,
1db8158e-b71d-11eb-917f-000c29d77752:1-20,
79c2fe65-b621-11eb-a65a-000c29d77752:1-4 |
+---------------------+----------+--------------+------------------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show binlog events in 'slave-binlog.000002';
+---------------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+---------------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| slave-binlog.000002 | 4 | Format_desc | 2 | 123 | Server ver: 5.7.32-log, Binlog ver: 4 |
| slave-binlog.000002 | 123 | Previous_gtids | 2 | 154 | |
| slave-binlog.000002 | 154 | Gtid | 2 | 219 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:1' |
| slave-binlog.000002 | 219 | Query | 2 | 332 | create database ceshi charset utf8mb4 |
| slave-binlog.000002 | 332 | Gtid | 2 | 397 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:2' |
| slave-binlog.000002 | 397 | Query | 2 | 516 | use `ceshi`; create table ceshi(id int,name varchar(20)) |
| slave-binlog.000002 | 516 | Gtid | 2 | 581 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:3' |
| slave-binlog.000002 | 581 | Query | 2 | 654 | BEGIN |
| slave-binlog.000002 | 654 | Table_map | 2 | 706 | table_id: 108 (ceshi.ceshi) |
| slave-binlog.000002 | 706 | Write_rows | 2 | 776 | table_id: 108 flags: STMT_END_F |
| slave-binlog.000002 | 776 | Xid | 2 | 807 | COMMIT /* xid=8 */ |
| slave-binlog.000002 | 807 | Gtid | 2 | 872 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:4' |
| slave-binlog.000002 | 872 | Query | 2 | 945 | BEGIN |
| slave-binlog.000002 | 945 | Table_map | 2 | 997 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 997 | Write_rows | 2 | 1048 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 1048 | Xid | 2 | 1079 | COMMIT /* xid=2783 */ |
| slave-binlog.000002 | 1079 | Gtid | 2 | 1144 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:5' |
| slave-binlog.000002 | 1144 | Query | 2 | 1217 | BEGIN |
| slave-binlog.000002 | 1217 | Table_map | 2 | 1269 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 1269 | Update_rows | 2 | 1351 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 1351 | Xid | 2 | 1382 | COMMIT /* xid=2786 */ |
| slave-binlog.000002 | 1382 | Gtid | 2 | 1447 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:6' |
| slave-binlog.000002 | 1447 | Query | 2 | 1520 | BEGIN |
| slave-binlog.000002 | 1520 | Table_map | 2 | 1572 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 1572 | Delete_rows | 2 | 1614 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 1614 | Xid | 2 | 1645 | COMMIT /* xid=2789 */ |
| slave-binlog.000002 | 1645 | Gtid | 2 | 1710 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:7' |
| slave-binlog.000002 | 1710 | Query | 2 | 1783 | BEGIN |
| slave-binlog.000002 | 1783 | Table_map | 2 | 1835 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 1835 | Delete_rows | 2 | 1914 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 1914 | Xid | 2 | 1945 | COMMIT /* xid=2792 */ |
| slave-binlog.000002 | 1945 | Gtid | 2 | 2010 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:8' |
| slave-binlog.000002 | 2010 | Query | 2 | 2083 | BEGIN |
| slave-binlog.000002 | 2083 | Table_map | 2 | 2135 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 2135 | Write_rows | 2 | 2205 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 2205 | Xid | 2 | 2236 | COMMIT /* xid=2795 */ |
| slave-binlog.000002 | 2236 | Gtid | 2 | 2301 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:9' |
| slave-binlog.000002 | 2301 | Query | 2 | 2374 | BEGIN |
| slave-binlog.000002 | 2374 | Table_map | 2 | 2426 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 2426 | Update_rows | 2 | 2476 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 2476 | Xid | 2 | 2507 | COMMIT /* xid=2797 */ |
| slave-binlog.000002 | 2507 | Gtid | 2 | 2572 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:10' |
| slave-binlog.000002 | 2572 | Query | 2 | 2645 | BEGIN |
| slave-binlog.000002 | 2645 | Table_map | 2 | 2697 | table_id: 251 (ceshi.ceshi) |
| slave-binlog.000002 | 2697 | Update_rows | 2 | 2761 | table_id: 251 flags: STMT_END_F |
| slave-binlog.000002 | 2761 | Xid | 2 | 2792 | COMMIT /* xid=2798 */ |
| slave-binlog.000002 | 2792 | Gtid | 2 | 2857 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:11' |
| slave-binlog.000002 | 2857 | Query | 2 | 2952 | drop database ceshi |
| slave-binlog.000002 | 2952 | Gtid | 2 | 3017 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:12' |
| slave-binlog.000002 | 3017 | Query | 2 | 3130 | create database ceshi charset utf8mb4 |
| slave-binlog.000002 | 3130 | Gtid | 2 | 3195 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:13' |
| slave-binlog.000002 | 3195 | Query | 2 | 3314 | use `ceshi`; create table ceshi(id int,name varchar(20)) |
| slave-binlog.000002 | 3314 | Gtid | 2 | 3379 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:14' |
| slave-binlog.000002 | 3379 | Query | 2 | 3452 | BEGIN |
| slave-binlog.000002 | 3452 | Table_map | 2 | 3504 | table_id: 297 (ceshi.ceshi) |
| slave-binlog.000002 | 3504 | Write_rows | 2 | 3574 | table_id: 297 flags: STMT_END_F |
| slave-binlog.000002 | 3574 | Xid | 2 | 3605 | COMMIT /* xid=2810 */ |
| slave-binlog.000002 | 3605 | Gtid | 2 | 3670 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:15' |
| slave-binlog.000002 | 3670 | Query | 2 | 3743 | BEGIN |
| slave-binlog.000002 | 3743 | Table_map | 2 | 3795 | table_id: 299 (ceshi.ceshi) |
| slave-binlog.000002 | 3795 | Write_rows | 2 | 3846 | table_id: 299 flags: STMT_END_F |
| slave-binlog.000002 | 3846 | Xid | 2 | 3877 | COMMIT /* xid=3514 */ |
| slave-binlog.000002 | 3877 | Gtid | 2 | 3942 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:16' |
| slave-binlog.000002 | 3942 | Query | 2 | 4015 | BEGIN |
| slave-binlog.000002 | 4015 | Table_map | 2 | 4067 | table_id: 299 (ceshi.ceshi) |
| slave-binlog.000002 | 4067 | Update_rows | 2 | 4149 | table_id: 299 flags: STMT_END_F |
| slave-binlog.000002 | 4149 | Xid | 2 | 4180 | COMMIT /* xid=3517 */ |
| slave-binlog.000002 | 4180 | Gtid | 2 | 4245 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:17' |
| slave-binlog.000002 | 4245 | Query | 2 | 4318 | BEGIN |
| slave-binlog.000002 | 4318 | Table_map | 2 | 4370 | table_id: 299 (ceshi.ceshi) |
| slave-binlog.000002 | 4370 | Delete_rows | 2 | 4412 | table_id: 299 flags: STMT_END_F |
| slave-binlog.000002 | 4412 | Xid | 2 | 4443 | COMMIT /* xid=3520 */ |
| slave-binlog.000002 | 4443 | Gtid | 2 | 4508 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:18' |
| slave-binlog.000002 | 4508 | Query | 2 | 4581 | BEGIN |
| slave-binlog.000002 | 4581 | Table_map | 2 | 4633 | table_id: 299 (ceshi.ceshi) |
| slave-binlog.000002 | 4633 | Delete_rows | 2 | 4712 | table_id: 299 flags: STMT_END_F |
| slave-binlog.000002 | 4712 | Xid | 2 | 4743 | COMMIT /* xid=3523 */ |
| slave-binlog.000002 | 4743 | Gtid | 2 | 4808 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:19' |
| slave-binlog.000002 | 4808 | Query | 2 | 4881 | BEGIN |
| slave-binlog.000002 | 4881 | Table_map | 2 | 4933 | table_id: 299 (ceshi.ceshi) |
| slave-binlog.000002 | 4933 | Write_rows | 2 | 5003 | table_id: 299 flags: STMT_END_F |
| slave-binlog.000002 | 5003 | Xid | 2 | 5034 | COMMIT /* xid=3526 */ |
| slave-binlog.000002 | 5034 | Gtid | 2 | 5099 | SET @@SESSION.GTID_NEXT= '1db8158e-b71d-11eb-917f-000c29d77752:20' |
1db8158e-b71d-11eb-917f-000c29d77752:20
| slave-binlog.000002 | 5099 | Query | 2 | 5172 | BEGIN |
| slave-binlog.000002 | 5172 | Table_map | 2 | 5224 | table_id: 299 (ceshi.ceshi) |
| slave-binlog.000002 | 5224 | Update_rows | 2 | 5302 | table_id: 299 flags: STMT_END_F |
| slave-binlog.000002 | 5302 | Xid | 2 | 5333 | COMMIT /* xid=3528 */ |
+---------------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
87 rows in set (0.00 sec)
263可以看出起点是1db8158e-b71d-11eb-917f-000c29d77752:15
269终点是 1db8158e-b71d-11eb-917f-000c29d77752:20
15 ->插入两行数据,16->任意修改3行数据,17->删除一行数据
f.18->删除所有数据
g.19->再t1中又插入5行新数据,20->修改3行数据
由上看出需要跳过f即gtid为18的进行恢复263-267
5. 截取gtid
[root@test ~]# mysqlbinlog --skip-gtids --include-gtids='1db8158e-b71d-11eb-917f-000c29d77752:15-20' --exclude-gtids='1db8158e-b71d-11eb-917f-000c29d77752:18' /data/mysql/data/slave-binlog.000002>/opt/binlog20210519.sql
6. 原库恢复
mysql> set sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)
mysql> source /opt/full_2021-05-19-01:13:20.sql
mysql> source /opt/binlog20210519.sql;
mysql> use ceshi;
Database changed
mysql> show tables;
+-----------------+
| Tables_in_ceshi |
+-----------------+
| ceshi |
+-----------------+
1 row in set (0.00 sec)
mysql> select * from ceshi;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 2 | b |
| 10 | c |
| 10 | e |
| 10 | aa |
| 10 | bb |
| 1 | a |
| 2 | b |
| 3 | c |
| 10 | d |
| 10 | e |
+------+------+
11 rows in set (0.00 sec)