视频剪辑软件 做推广 java反射机制 Pytorch 后端面试 awk enums routes nlp cocos2d html5 alertifyjs vue遍历 后台管理模板 河南省普通话考试官网 erp系统源码 js空格符 虚拟机重启命令 mysql转字符串 java解析pdf mysql分区表优劣分析 python注释 python生成随机数 python参考手册 python怎么下载安装 python中的if语句 java正则 java环境搭建 java连接mysql数据库 java数组添加值 javahttp java代码 linux入门 销售单软件 微信客户管理系统 7个人 淘宝图片下载 暴力猴插件 mysql时间比较 送货单管理系统 js刷新当前页
当前位置: 首页 > 学习教程  > 编程语言

Mysql数据库的增删改查及备份还原操作

2020/11/24 9:42:41 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

创建数据库: mysql> create database abc; 连接数据库: mysql> use abc; 创建表: mysql> create table biao1 (id int,name char(10)); 查看表结构: mysql> desc biao1; 插入数据: mysql> insert …

创建数据库:
mysql> create database abc; 

连接数据库:
mysql> use abc;

创建表:
mysql> create table biao1 (id int,name char(10));

查看表结构:
mysql> desc biao1;

插入数据:
mysql> insert into biao1 (id,name) values (1,'z1');
mysql> insert into biao1 (id,name) values (2,'z2');

查看数据:
mysql> select * from biao1;

修改数据:
mysql> update biao1 set name='zzz' where id=2;

删除数据:
mysql> delete from biao1 where id=2;

删除表:
mysql> drop table biao1;

删除数据库:
mysql> drop database abc;

查看数据库名:
mysql> show databases;

查看表名:
mysql> show tables;

启动和关闭数据库
〉net start  mysql
>net  stop  mysql

数据库冷备份:
# /etc/init.d/mysqld stop
#mkdir /backup
#tar zcfp /backup/abcsql.tar.gz /usr/local/mysql/data/
#cd /backup/
# ls
abcsql.tar.gz

模拟数据库损坏
# mkdir /bda
# mv /usr/local/mysql/data/ /bda/
# /etc/init.d/mysqld start→报错

恢复:
# cd /restore/
#  tar zxf /backup/abcsql.tar.gz -C /restore/
# mv /restore/usr/local/mysql/data/ /usr/local/mysql/data
# /etc/init.d/mysqld start(成功)

mysqldump命令的使用:
mysqldump -u 用户名 -p [密码] [选项] [数据库名] [表名] > /备份路径/备份文件名 
常见选项:--all-databases、--opt


备份:
备份数据表
# mysqldump -u root -p abc users > /backup/abc.users.sql
备份数据库
# mysqldump -u root -p --database abc > /backup/abc.sql
备份所有库
# mysqldump -u root -p --all-databases > /backup/all.sql

注意:在备份完毕数据库后会出现
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
翻译:
警告:不推荐使用唯一选项前缀database而不是databases,并将在将来的版本中删除。请改用全名。

恢复:(只有库和所有库)
mysql -u 用户名 -p [密码] [选项] [数据库名] < /备份路径/备份文件名
恢复数据库
# mysql -u root -p abc < /backup/abc.sql 
恢复所有库
#  mysql -u root -p < /backup/all

MYSQL增量备份与恢复
开启二进制日志
vim /etc/my.cnf
log-bin=/usr/local/mysql/mysql-bin
重启数据库
/etc/init.d/mysqld restart

查看二进制日志文件
mysqlbinlog --no-defaults /usr/local/mysql/mysql-bin.000001

实例:

创建数据
mysql> create database client;
mysql> use client;
mysql> create table user_info(csny char(20) not null,name char(20) not null,sex char(4),id char(10) not null,yhzf 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;
+--------+--------+------+-----+------+
| csny   | name   | sex  | id  | yhzf |
+--------+--------+------+-----+------+
| 000006 | 张三   | 男   | 016 |   10 |
| 000007 | 李四   | 女   | 017 |   91 |
| 000008 | 王五   | 女   | 018 |   23 |
+--------+--------+------+-----+------+

先进行一次完整备份
# mysqldump -uroot -p client user_info > /backup/client.user_info.sql

在添加用户做增量备份
mysql> use client;

mysql> 
mysql> insert into user_info values('000009','赵六','男','019','37');
mysql> insert into user_info values('000010','孙七','男','020','36');

mysql> select * from user_info;
+--------+--------+------+-----+------+
| csny   | name   | sex  | id  | yhzf |
+--------+--------+------+-----+------+
| 000006 | 张三   | 男   | 016 |   10 |
| 000007 | 李四   | 女   | 017 |   91 |
| 000008 | 王五   | 女   | 018 |   23 |
| 000009 | 赵六   | 男   | 019 |   37 |
| 000010 | 孙七   | 男   | 020 |   36 |
+--------+--------+------+-----+------+

刷新日志(增量)
mysql> flush logs;

模拟误删除
# mysql -u root -p -e 'drop table client.user_info;'
# mysql -u root -p -e 'select * from client.user_info;' 

恢复(完整→增量)
# mysql -u root -p client < /backup/client.user_info.sql 
# mysql -u root -p -e 'select * from client.user_info;'
# mysqlbinlog --no-defaults /usr/local/mysql/mysql-bin.000003 | mysql -uroot -p

基于位置恢复
模拟误删除
mysql -u root -p -e 'drop table client.user_info;'
mysql -u root -p -e 'select * from client.user_info;' 

恢复(完整→增量)
从2711这个位置开始恢复
mysqlbinlog --no-defaults --start-position='2711' /usr/local/mysql/mysql-bin.000004 | mysql -uroot -p
停止恢复到2711这个位置
mysqlbinlog --no-defaults --stop-position='2711' /usr/local/mysql/mysql-bin.000004 | mysql -uroot -p

基于时间点
模拟误删除
mysql -u root -p -e 'drop table client.user_info;'
mysql -u root -p -e 'select * from client.user_info;' 

恢复(完整→增量)
从2020-11-18 14:45:31这个时间点开始恢复
mysqlbinlog --no-defaults --start-datetime='2020-11-18 14:45:31' /usr/local/mysql/mysql-bin.000004 | mysql -uroot -p
停止恢复到2020-11-18 14:45:31这个时间点
mysqlbinlog --no-defaults --stop-datetime='2020-11-18 14:45:31' /usr/local/mysql/mysql-bin.000004 | mysql -uroot -p


本文链接: http://www.dtmao.cc/news_show_400110.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?