当前问题集:
- 包含 mysql_connector 对象的 Python 应用程序
- 只能使用 mysql 访问远程服务器(无 ssh、rsh、telnet 等)
目标:
- 使用 mysql 连接器创建数据库备份到文件(在本地机器或网络位置 - 例如 Samba 共享)
- 我想避免从每个表中收集每一行并将单行转储到 ascii 文件中。
环境:
- 操作系统:Windows、Linux
- Python版本: 2.7
到目前为止我尝试了什么:
欢迎任何帮助和提示!
当前问题集:
目标:
环境:
到目前为止我尝试了什么:
欢迎任何帮助和提示!
在基于 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
如果您的本地计算机无法访问数据库,您只需要在服务器上运行它,但是您说您可以访问服务器,所以这应该可以正常工作。请记住不要在密码和 -p 之间添加空格。(如果密码是 passwd,写-ppasswd
)
我正在使用 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)