mysql备份及pymysql

一 IDE工具介绍

生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具

下载链接:https://pan.baidu.com/s/1bpo5mqj

掌握:
#1. 测试+链接数据库
#2. 新建库
#3. 新建表,新增字段+类型+约束
#4. 设计表:外键
#5. 新建查询
#6. 备份库/表

#注意:
批量加注释:ctrl+?键
批量去注释:ctrl+shift+?键

回到顶部

二 MySQL数据备份

#1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。
#2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
#3. 导出表: 将表导入到文本文件中。

一、使用mysqldump实现逻辑备份

#语法:
# mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql

#示例:
#单库备份
mysqldump -uroot -p123 db1 > db1.sql
mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql

#多库备份
mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql

#备份所有库
mysqldump -uroot -p123 --all-databases > all.sql

二、恢复逻辑备份

#方法一:
[[email protected] backup]# mysql -uroot -p123 < /backup/all.sql

#方法二:
mysql> use db1;
mysql> SET SQL_LOG_BIN=0;
mysql> source /root/db1.sql

#注:如果备份/恢复单个库时,可以修改sql文件
DROP database if exists school;
create database school;
use school;

三、备份/恢复案例

 

四、实现自动化备份

 

五、表的导出和导入

 

六、数据库迁移

务必保证在相同版本之间迁移
# mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456

七 pymysql模块

#安装
pip3 install pymysql

一 链接、执行sql、关闭(游标)

import pymysql
user=input(‘用户名: ‘).strip()
pwd=input(‘密码: ‘).strip()

#链接
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘123‘,database=‘egon‘)
#游标
cursor=conn.cursor()

#执行sql语句
sql=‘select * from userinfo where name="%s" and password="%s"‘ %(user,pwd) #注意%s需要加引号
print(sql)
res=cursor.execute(sql) #执行sql语句,返回sql查询成功的记录数目
print(res)

cursor.close()
conn.close()

if res:
    print(‘登录成功‘)
else:
    print(‘登录失败‘)

二 execute()之sql注入

注意:符号--会注释掉它之后的sql,正确的语法:--后至少有一个任意字符

根本原理:就根据程序的字符串拼接name=‘%s‘,我们输入一个xxx‘ -- haha,用我们输入的xxx加‘在程序中拼接成一个判断条件name=‘xxx‘ -- haha

最后那一个空格,在一条sql语句中如果遇到select * from t1 where id > 3 -- and name=‘egon‘;则--之后的条件被注释掉了

#1、sql注入之:用户存在,绕过密码
egon‘ -- 任意字符

#2、sql注入之:用户不存在,绕过用户与密码
xxx‘ or 1=1 -- 任意字符

解决方法:

# 原来是我们对sql进行字符串拼接# sql="select * from userinfo where name=‘%s‘ and password=‘%s‘" %(user,pwd)
# print(sql)
# res=cursor.execute(sql)

#改写为(execute帮我们做字符串拼接,我们无需且一定不能再为%s加引号了)
sql="select * from userinfo where name=%s and password=%s" #!!!注意%s需要去掉引号,因为pymysql会自动为我们加上
res=cursor.execute(sql,[user,pwd]) #pymysql模块自动帮我们解决sql注入的问题,只要我们按照pymysql的规矩来。

三 增、删、改:conn.commit()

 

四 查:fetchone,fetchmany,fetchall

 

五 获取插入的最后一条数据的自增ID

 

时间: 2024-08-07 00:11:30

mysql备份及pymysql的相关文章

mysql六:数据备份、pymysql模块

阅读目录 一 IDE工具介绍 二 MySQL数据备份 三 pymysql模块 一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键 二 MySQL数据备份

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

MySQL备份与增量备份

MySQL备份与增量备份 01)MySQL备份常用参数 -B 1.会备份创建和删除库的语句:2.备份多个库: --compact 去注释,适合调试 gzip 压缩:# mysqldump -uroot -pqb123 -S /data/3306/mysql.sock -F -B --master-data=2 mydb|gzip > /server/backup/bak_$(date +%F).sql.gz -A 备份所有库 -F 刷新binlog日志 --master-data=1/2 增加b

Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳理Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录 废话不多说,下面即是使用lvm-snapshot快照方式备份mysql的操作记录,仅依据本人实验中使用而述. 操作记录:如下环

bat批处理实现mysql备份

一.新建bat文件,实现mysql备份功能.(即把txt文件后缀改为.bat) 代码解释: d:                                                                                    //选择d盘cd "D:\MySQL\MySQL Server 5.5\bin" //进入mysql安装目录下的bin文件set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

Mysql备份和恢复

Mysql备份和恢复 备份 热备,是指对数据库运行中直接进行备份,对正在运行的数据库没有任何影响: 冷备,是指在数据库停止(关闭)下进行备份,只需拷贝相关的数据物理文件: 温备,是指对数据库运行中直接进行备份,但对当前数据库操作有所影响,很少用. 按备份出来的文件内容分为: 逻辑备份: 裸文件备份. 逻辑备份后文件内容是可读的,通常是文本文件,内容一般是Sql语句或表内的实际数据,如mysqldump或select * into outfile等方法.适用于数据库的升级.迁移,恢复时间较长. 裸

MySQL备份数据库脚本

Windows @echo offmysqldump --add-drop-database --add-drop-table -u root -p123456 dbname > d:\db_backup\%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%_dbname.sql Linux #!/bin/shcd /usr/binDATE=`date +%Y-%m-%d`# 备份dbname数据库/usr

mysql 备份类型

如果数据库已经安装在raid01 或者raid10上面,那我们的数据库是否还需要备份 答:需要的,因为我们的raid只是为了保证硬件损坏而不会中断业务.但是软件上的故障或者人为删除数据库.raid是无法对数据进行还原的.因为你删除了的时候,假如是在raid上面,也会删除掉两份数据.因此数据库备份和raid 是两个不同层次的概念. mysql备份如何进行,以及应该备份哪些数据? 备份类型: 我们的数据库非常繁忙,每一秒都有读写操作.假如你执行一个拷贝命令,那你只能拷贝出来当时那个时间段的数据,后面

mysql备份

mysql备份与还原 备份:将当前已有的数据或记录保留 还原:将已保留的数据恢复到对应的表中 为什么要做备份还原? 1.防止数据丢失:被盗.误操作 2.保护数据记录 数据备份有很多种:数据表备份,单表备份,sql备份,增量备份 数据表备份:不需要通过sql来备份,直接进入数据库文件夹对表结构及数据进行复制,以后还原直接将数据放进去就行 数据表备份有前提条件:根据不同的存储引擎有不同的区别 存储引擎:mysql进行数据存储方式:主要有两用innodb和myisam(免费) 这种文件备份适合用myi