【问题标题】:Python MYSQL-connector backup creationPython MYSQL-connector 备份创建
【发布时间】:2016-01-21 18:36:29
【问题描述】:

当前问题集

  • 包含 mysql_connector 对象的 Python 应用程序
  • 只能使用 mysql 访问远程服务器(无 ssh、rsh、telnet 等)

目标

  • 使用 mysql 连接器创建数据库备份到文件(在本地计算机或网络位置 - 例如 Samba 共享)
  • 我想避免从每个表中收集每一行并将单行转储到 ascii 文件中。

环境

  • 操作系统:Windows、Linux
  • Python 版本:2.7

到目前为止我尝试了什么

欢迎任何帮助和提示!

【问题讨论】:

  • 你能用mysql-dump吗?或者你需要在 python 中运行它?
  • 您好,感谢您的评论。我不能使用 mysql-dump,因为这需要服务器端访问。该应用程序是一个客户端,因此仅依赖于 python 方法
  • mysqldump 也是一个客户端,你不必在服务器上运行它。您只需要主机、用户名和密码。

标签: python mysql python-2.7 mysql-connector mysql-connector-python


【解决方案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

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多