Python MYSQL-connector 备份创建
Posted
技术标签:
【中文标题】Python MYSQL-connector 备份创建【英文标题】:Python MYSQL-connector backup creation 【发布时间】:2016-01-21 18:36:29 【问题描述】:当前问题集:
包含 mysql_connector 对象的 Python 应用程序 只能使用 mysql 访问远程服务器(无 ssh、rsh、telnet 等)目标:
使用 mysql 连接器创建数据库备份到文件(在本地计算机或网络位置 - 例如 Samba 共享) 我想避免从每个表中收集每一行并将单行转储到 ascii 文件中。环境:
操作系统:Windows、Linux Python 版本:2.7到目前为止我尝试了什么:
检查了API Reference 和Extension API Reference 编辑: 我还使用关键字 mysql-connector 和 backup 以及 copy table 搜索了 SO欢迎任何帮助和提示!
【问题讨论】:
你能用mysql-dump吗?或者你需要在 python 中运行它? 您好,感谢您的评论。我不能使用 mysql-dump,因为这需要服务器端访问。该应用程序是一个客户端,因此仅依赖于 python 方法 mysqldump 也是一个客户端,你不必在服务器上运行它。您只需要主机、用户名和密码。 【参考方案1】:我正在使用 mysqldump - 这意味着我必须在客户端计算机上安装它,但它(对我而言)比从每个表中选择每一行的复杂脚本更可靠。
try:
mysqldump_process = run(["/usr/bin/mysqldump","-h",host_endpoint,"-P","3306","-u","admin",master_user_password,"--result-file=/tmp/sanitised_dump.sql","--databases",schema_name], capture_output=True, check=True, text=True)
print ("mysqldumping")
print ("Process: ", mysqldump_process)
print ("Command output: ", mysqldump_process.stdout)
except:
print("mysqldump failed (but i don't know how to get the output in the exception handler)")
print ("Process: ", mysqldump_process)
【讨论】:
【参考方案2】:在基于 Ubuntu 的 linux 发行版上运行以下命令以获取名为 my_database 的数据库的完整备份(包括架构)。
sudo apt-get install mysql-client
mysqldump -h<your_db_server> -u <your_user> -p<your_password> -e --databases my_database > my_backup.sql
如果你的本地机器无法访问数据库,你只需要在服务器上运行它,但是你说你有 mysql 访问服务器的权限,所以这应该可以正常工作。请记住不要在密码和 -p 之间添加空格。 (如果密码是passwd,写-ppasswd
)
【讨论】:
以上是关于Python MYSQL-connector 备份创建的主要内容,如果未能解决你的问题,请参考以下文章
无法为 Python v3.4.2 安装 Mysql-connector Python2.0.2