Skip to content

Instantly share code, notes, and snippets.

@trafficinc
Last active March 8, 2024 04:26
Show Gist options
  • Save trafficinc/a0b7cfa58a00e794bf8c7dd0626c2765 to your computer and use it in GitHub Desktop.
Save trafficinc/a0b7cfa58a00e794bf8c7dd0626c2765 to your computer and use it in GitHub Desktop.
Python script for taking mysqldump
#!/usr/local/bin/python3
"""
Will backup all the databases listed, will put files in same DIR as script'
To run: $ python dbbackup.py OR python3 dbbackup.py
"""
import configparser
import os
import time
import getpass
HOST='localhost'
PORT='3306'
DB_USER='username'
DB_PASS='password'
# if using one database... ('database1',)
databases=('database1','database2','database3')
def get_dump(database):
filestamp = time.strftime('%Y-%m-%d-%I')
# D:/xampp/mysql/bin/mysqldump for xamp windows
os.popen("mysqldump -h %s -P %s -u %s -p%s %s > %s.sql" % (HOST,PORT,DB_USER,DB_PASS,database,database+"_"+filestamp))
print("\n|| Database dumped to "+database+"_"+filestamp+".sql || ")
if __name__=="__main__":
for database in databases:
get_dump(database)
@thukuwanjiku
Copy link

Thanks a lot for this. Really helped me

@Nethaje
Copy link

Nethaje commented Apr 4, 2021

Hi,
The code works fine and the .sql files are getting generated. But the generated dump file is empty, 0 KB
Can you help me out in this.

@trafficinc
Copy link
Author

@thukuwanjiku No problem, thanks!

@Vincent-code-dev
Copy link

Vincent-code-dev commented May 18, 2021

I have the same problem as @Nethaje

@Vincent-code-dev
Copy link

When I run the script it doesn't recognize the database because it reads every single letter on its own. For example :

Database : Test

He reads : T,e,s,t = 4 databases.

@Vincent-code-dev
Copy link

Will need more information to figure out the issue, what OS are you on, what settings?

Man got it running all good. Thanks for the fast reply tho my g.

@retiels
Copy link

retiels commented Apr 9, 2022

Cuando ejecuto el script, no reconoce la base de datos porque lee cada letra por sí sola. Por ejemplo :

Base de datos: Prueba

Lee: T,e,s,t = 4 bases de datos.

if you database_name is "Test", try to:

databases = ('Test',)

because it´s a tuple!

@qq516249940
Copy link

qq516249940 commented Apr 20, 2022

os.popen is not close connect,you can use with like with os.popen(command, "r") as p:
r = p.read()

@shahgurmeet
Copy link

@trafficinc The code works fine and the .sql files are getting generated. But the generated dump file is empty, 0 KB
Can you help me out in this.
I am using this on Windows 10 Pro and Current Version:- 3.9.7
Error Msg I am getting is:
'mysqldump' is not recognized as an internal or external command,
operable program or batch file.
'mysqldump' is not recognized as an internal or external command,
operable program or batch file.

@singhj775
Copy link

Add mysql path into your Environment variables

@codeshoel
Copy link

I'm having an empty file of 0kb when I run on the Windows task scheduler, but when run on cmd it backups the database with content in file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment