During development, we often use Svn or Git to manage our code or project-related files. However, they all have one thing in common: Version control
Many people will If you ask why you should use Svn or Git, then I will ask: I believe the code you wrote is very good, but one day you modified many bugs, but suddenly you thought that there was a more important algorithm in the previous code and you accidentally It’s covered, what should you do now?
Recommendation 《MySQL Video Tutorial》
Maybe you will tell me that you can back up the currently modified files or the current project before modifying these codes.
But how many backup files will there be on your machine over time?
If one day your colleague needs to roll back to the previous code to see the cause of the bug at that time, will you find the file at the specified time from your machine and send it to him?
Of course not. After we have Svn or Git, we can easily see the previous versions of the files and compare them easily. So now the importance of version control is clear.
The same is true for databases. 99% of our systems are inseparable from databases because we always have to store data.
What if our database is accidentally deleted, hacked, or maliciously modified?
Then we can try to let our server automatically back up the database data for us to the specified location. If one day our database accidentally shakes, we can also use the backed up database script to directly recover.
Upload script:
# db username db_user="test" # db password db_passwd="test" # db host db_host="121.201.5.216" # backup db name db_name="Alterem" # the directory for story your backup file. backup_dir="backup" cd # date format for backup file (dd-mm-yyyy) time="$(date +"%Y-%m-%d-%H-%M-%S")" # mysql, mysqldump and some other bin's path MYSQL="/usr/local/mysql/bin/mysql" MYSQLDUMP="/usr/local/mysql/bin/mysqldump" GZIP="/bin/gzip" $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db_name | $GZIP -9 > "/data/backup/$backup_dir/$db_name"_"$time.gz"
Create timer
crontab -e
Add timer
# 每天凌晨 1 点 30 分 进行数据备份 30 1 * * * /root/mysql-backup.sh
Restart timer
/etc/rc.d/init.d/crond restart
cron parsing
# For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed复制代码
Online Cron expression generator: http://cron.qqe2. com/
The above is the detailed content of MySQL performs automatic backup on CentOS. For more information, please follow other related articles on the PHP Chinese website!