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-connectorbackup 以及 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

Python3快速入门——Python3数据库操作

为啥即使安装成功,导入 mysql-connector 也会失败?

Connector for Python

Connector for Python

将 cx_freeze 与 mysql-connector 一起使用