MySQL的数据备份以及pymysql的使用

一、MySQL的数据备份

语法:
# 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

MYsql的数据备份
     备份与恢复操作:

如:

       mysqldump - uroot day43 > E:\\day43.sql
    drop database day43; 删除原先的文件夹

   show databases; 查看全部的文件夹

  create database day43; 创建一个文件夹

 use day43; 切换到day43这个文件夹下
source E:\\day43.sql; 恢复数据

mysqldump - uroot day51 > D:\\day51.sql
1、登录MySQL恢复:
drop database day51;
create database day51;
source D:\\day51.sql;

2、不登录MySQL直接在外面恢复;
mysql -uroot day51 < D:\\day51.sql

(2)、恢复到指定的库中:
create database bak; 新建一个文件夹
use dak; 切换到dak这个文件夹下
mysql -uroot bak < D:\\day51.sql; 恢复数据

只备份一个表
mysqldump - uroot day51 deparment > D:\\day51-deparment.sql
MySQL 进数据库
create database bakl; 新建一个库
quit 退出
在mysql外面恢复
mysql -uroot bakl < D:\\day51-deparment.sql
nysql 进数据库
use bakl 切换到dakl这个文件夹下

直接在数据库外面查看
mysql -uroot -e "use bakl"
mysql -uroot -e "use bakl;show tables;"

 

备份多个库
mysqldump -uroot -e "show databases;" 查看全部的库

备份
mysqldump -uroot --databases db1 db2 db3 > E:\\db1-db2-db3.sql

MySQL         进数据库

删除原来的文件夹

quit 退出

在外面查看
mysql -uroot < E:\\db1-db2-db3.sql 恢复数据库
mysqldump -uroot -e "show databases;"

备份所有库
mysqldump -uroot --all-databases > E:\\all.sql

二、表的导出和导入

表的导出和导入

(show variables like ‘%secur%‘;查看选项)
导出
use day51; 切换到day51下面
show tables; 查看表
select * from userinfo; 查看表下的文件夹

select * from userinfo into outfile ‘E:\\userinfo.txt‘ fields terminated by ‘,‘lines terminated by ‘\n‘; 导出

导入
create table user(
id int primary key auto_increment,
name char(32),
age int,
deparment_id int);      建表

load data infile ‘E:\\userinfo.txt‘
into table user fields terminated by ‘,‘lines terminated by ‘\n‘; 导入

三、 pymysql模块

#安装
pip3 install pymysql

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

1 基本使用
# import pymysql
# #mysql -h localhost -uroot -p123
# conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘)
# cursor=conn.cursor() #拿到游标,即mysql >
#
# sql=‘select * from user where id>1;‘
# rows=cursor.execute(sql) #拿到受影响的行数
# print(‘%s rows in set (0.00 sec)‘ %rows)
#
# cursor.close()
# conn.close()
1.小练习import pymysql
user=input(‘用户名>>: ‘).strip()
pwd=input(‘密码>>: ‘).strip()

#链接,拿到游标
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘)
cursor=conn.cursor() #拿到游标,即mysql >

#执行sql
sql=‘select * from user where user="%s" and password="%s";‘ %(user,pwd)
print(sql)
rows=cursor.execute(sql) #拿到受影响的行数
# print(‘%s rows in set (0.00 sec)‘ %rows)

cursor.close()
conn.close()

if rows:
    print(‘登录成功‘)
else:
    print(‘登录失败‘)
#3:sql注入
import pymysql
user=input(‘用户名>>: ‘).strip()
pwd=input(‘密码>>: ‘).strip()
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘)
cursor=conn.cursor()

sql=‘select * from user where user="%s" and password="%s";‘ %(user,pwd)
print(sql)
rows=cursor.execute(sql)
cursor.close()
conn.close()
if rows:
    print(‘登录成功‘)
else:
    print(‘登录失败‘)
3:解决sql注入
import pymysql
user=input(‘用户名>>: ‘).strip()
pwd=input(‘密码>>: ‘).strip()
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘)
cursor=conn.cursor()

sql=‘select * from user where user=%s and password=%s;‘
rows=cursor.execute(sql,[user,pwd])
print(rows)
cursor.close()
conn.close()
if rows:
    print(‘登录成功‘)
else:
    print(‘登录失败‘)
4 增删改
import pymysql
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘,charset=‘utf8‘)
cursor=conn.cursor()

sql=‘insert into user(user,password) values(%s,%s);‘
rows=cursor.execute(sql,(‘alex‘,‘123‘))
rows=cursor.executemany(sql,[(‘yuanhao‘,‘123‘),(‘laowu‘,‘123‘),(‘kgf‘,‘12323‘)])
print(‘%s row in set (0.00 sec)‘ %rows)
conn.commit()

cursor.close()
conn.close()
5 查:fetchone,fetchmany,fetchall
import pymysql
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘,charset=‘utf8‘)
cursor=conn.cursor()
sql=‘select * from user;‘
rows=cursor.execute(sql)
查单条
res1=cursor.fetchone()
res2=cursor.fetchone()
res3=cursor.fetchone()
print(res1[0])
print(res2)
print(res3)

查多条
print(cursor.fetchmany(3))
print(cursor.fetchone())

查所有
print(cursor.fetchall())
print(cursor.fetchone())

光标的移动
print(cursor.fetchall())
cursor.scroll(1,mode=‘absolute‘)
print(cursor.fetchone())
cursor.scroll(3,mode=‘absolute‘)
print(cursor.fetchone())

print(cursor.fetchone())
print(cursor.fetchone())
cursor.scroll(-2,mode=‘relative‘)
print(cursor.fetchone())

print(‘%s row in set (0.00 sec)‘ %rows)
cursor.close()
conn.close()

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

import pymysql
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘123‘,database=‘egon‘)
cursor=conn.cursor()

sql=‘insert into userinfo(name,password) values("xxx","123");‘
rows=cursor.execute(sql)

conn.commit()
print(cursor.lastrowid) #在commit之前和之后都可以查看
cursor.close()
conn.close()
时间: 2024-10-14 10:13:59

MySQL的数据备份以及pymysql的使用的相关文章

mysql:数据备份、pymysql模块

一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键 二 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异

Python数据库MySQL之数据备份、pymysql模块

一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键 二 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异

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大数据备份和恢复一 MySQL备份一般采取全库备份.日志备份:MySQL出现故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间:mysql的二进制日志记录着该数据库的所有增删改的操作日志还包括了这些操作的执行时间 Binlog的用途:主从同步.恢复数据库 使用binlog工具备份 查看binlog是否开启,因为默认是关闭的 从上图可知off为关闭状态,一般logbin为只读,在/etc/my.cnf下开启 重启数据库 重启后在目录下查看是否生成bin日志

mysql大数据备份与还原(二)

mysql大数据备份和增量备份及还原 Xtrabackup实现是物理备份,而且是物理热备 目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup :ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提供了两种命令行工具: xtrabackup:专用于备份InnoDB和XtraDB引擎的数据: innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令可以实现备份InnoDB,

【windows】环境下mysql的数据备份以及恢复

[windows]环境下mysql的数据备份以及恢复 无论是刚刚入行的'猿友'还是入行很久的'老猿',我相信都会遇到过因为各种原因(很多情况下是自己误删了数据库)的操作.drop databases xxxxx 而误删了线上项目的数据库是一件很恐怖的事情,那么如果大家遇到这种情况怎么办呢?首先不要着急(我感觉说了也白说-,-),先看一看自己的mysql是否开启了binlog日志功能,如果没有???game over !!! 关于查看binlog日志有没有开启,请到自己的Mysql文件下找my.i

Mysql(六):数据备份、pymysql模块

一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键 二 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异

数据备份、pymysql模块

MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异构系统中如Windows. #2. 逻辑备份: 备份的是建表.建库.插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低. #3. 导出表: 将表导入到文本文件中.  一.使用mysqldump实现逻辑备份 #语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql #示例: #单库备份 mysqldump -uroot -p123 db1 > db

mysql定时数据备份工具(c#)

此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/40124773如果进行转载请注明出处.本文作者原创,邮箱[email protected],如有问题请联系作者 为了确保数据的安全,我们往往要对数据进行备份.但是为了减少我们的工作量,我写了一个简单的数据备份工具,实现定时备份数据库. 其实程序很简单,数据备份的工作就是几个mysql的命令而已. 先看看程序的运行界面 可以看到界面是十分的简单的 我们使用的是命令行来进行数据备份,