mysqldump -u root -p123456 dbname > backdb.sql
mysqldump -u root -p123456 dbname > 绝对路径\backdb.sql
mysqldump --user='root' --password='123456' dbname > backdb.sql
mysqldump -u root -p123456 dbname tbname1, tbname2 > backdb.sql
mysqldump -u root -p123456 --databases dbname1, dbname2 > backdb.sql
mysqldump -u root -p123456 --all-databases > backdb.sql
mysqldump -u root -p123456 --all-databases | gzip > backdb_`date '+%Y-%m-%d'`.sql.gz
mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb
添加到定时任务,每天凌晨1点备份一次
mysqldump -u root -p123456 --all-databases | gzip > /data/dockers/mysql/data/backdb_`date '+%Y-%m-%d'`.sql.gz
发现在我的系统上,crontab里面带日期的居然执行失败了,于是放到shell文件中了。
/bin/sh /data/www/backup.sh
如果mysql是由docker运行的,保存路径为宿主机的路径,而不是容器里面的
docker exec mysql mysqldump -u root -p123456 --all-databases | gzip > /data/dockers/mysql/data/backdb_`date '+%Y-%m-%d'`.sql.gz
补充说明
当mysql版本为5.7(我的是5.7.24)的时候,上面的命令会报错
mysqldump: [Warning] Using a password on the command line interface can be insecure.
同时定时任务也执行失败。需要做如下修改。
修改配置文件/etc/my.cnf.d/mysql-clients.cnf添加如下内容
[mysqldump]
user = root
password = 'mypass'
host = 127.0.0.1
不需要重启mysql,因为这是对于mysqldump的配置。
执行命令
mysqldump --defaults-extra-file=/etc/my.cnf.d/mysql-clients.cnf chpay > /data/www/backdb/backdb_`date '+%Y-%m-%d'`.sql