Home > Database > Mysql Tutorial > body text

MySQL performs automatic backup on CentOS

angryTom
Release: 2019-10-14 15:02:56
forward
2394 people have browsed it

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"
Copy after login

Create timer

crontab -e
Copy after login

Add timer

# 每天凌晨 1 点 30 分 进行数据备份
30  1  *  *  * /root/mysql-backup.sh
Copy after login

Restart timer

/etc/rc.d/init.d/crond restart
Copy after login

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复制代码
Copy after login

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!

Related labels:
source:juejin.im
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!