数据备份 及 Python 操作 Mysql
1|0一 MySQL数据备份
1|1一、使用mysqldump实现逻辑备份
1|2二、恢复逻辑备份
1|3三、备份/恢复案例
1|4四、实现自动化备份
1|5五、表的导出和导入
1|6六、数据库迁移
2|0二 pymysql模块
本篇对于Python操作MySQL主要使用两种方式:
- 原生模块 pymsql
- ORM框架 SQLAchemy
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。
2|1下载安装
在使用 pip 时,确保其已经加了环境变量。
2|2一 链接、执行sql、关闭(游标)
1、执行SQL
这里需要注意两点:
一. 新版 MySQL8 默认采用了caching_sha2_password验证方式。和旧版不一样。
1、进入CMD命令符窗口(win+R)
2、进入mysql安装目录的bin路径下运行mysql -uroot -p命令进行登录(密码是安装mysql时设置的密码)
3、输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';(root是用户名,localhost是ip地址127.0.0.1都是特指本机,mysql_native_password是旧的密码验证机制,password是密码,最后别忘了分号;)
二. Mysql安全性越来越高,新创的用户默认都是没有权限的。(不仅没有更改权限,也没有任何的select权限。)所以,如果用非 root 权限去 connect,会报错:pymysql.err.OperationalError: (1044, u"Access denied for user '用户名'@'localhost' to database '数据表名字'")。
1. 给用户相应权限 比如 grant all privileges on *.* to '用户名'@'IP'
2|3二 execute()之sql注入
注意:符号--会注释掉它之后的sql,正确的语法:--后至少有一个任意字符
根本原理:就根据程序的字符串拼接name='%s',我们输入一个xxx' -- haha,用我们输入的xxx加'在程序中拼接成一个判断条件name='xxx' -- haha'
解决方法:
2|4三 增、删、改:conn.commit()
四 查:fetchone,fetchmany,fetchall
关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即:
2|5五 获取插入的最后一条数据的自增ID
2|6六 利用 with 自动关闭
每次连接数据库都需要连接和关闭,啊,好多代码,那么方法又来了:http://www.bjhee.com/python-context.html
__EOF__

本文链接:https://www.cnblogs.com/dongye95/p/9145657.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!