mysql 数据库备份
在服务器中的数据库
MySQL数据库备份是重要的数据保护措施,以下是常用的MySQL数据库备份命令
1. mysqldump命令
# 备份整个数据库
mysqldump -u username -p dbname >backup.sql
# 备份选择的表
mysqldump -u username -p dbname table1 table2 >backup.sql
# 压缩备份文件
mysqldump -u username -p dbname | gzip >backup.sql.gz
# 恢复备份
mysql -u username -p dbname< backup.sql
2. mysqlhotcopy命令
# 备份整个数据库
mysqlhotcopy -u username -p dbname /path/to/backup
# 备份指定表
mysqlhotcopy -u username -p -d dbname table1 table2 /path/to/backup
3. 复制命令
# 复制整个数据库
mysql -u username -p -e "CREATE DATABASE dbname2; GRANT ALL PRIVILEGES ON dbname2.* TO 'username'@'%' IDENTIFIED BY 'password';"
mysqldump -u username -p dbname | mysql -u username -p dbname2
# 复制指定表
mysql -u username -p -e "CREATE DATABASE dbname2; GRANT ALL PRIVILEGES ON dbname2.* TO 'username'@'%' IDENTIFIED BY 'password';"
mysqldump -u username -p dbname table1 table2 | mysql -u username -p dbname2
4. mysqlpump命令
# 备份整个数据库
mysqlpump -u username -p dbname >backup.sql
# 备份指定表
mysqlpump -u username -p --tables dbname table1 table2 >backup.sql
# 压缩备份文件
mysqlpump -u username -p dbname | gzip >backup.sql.gz
# 恢复备份
mysql -u username -p dbname< backup.sql
docker数据库备份
1.备份所有数据库:
# xxx: docker 的name 字段
# password : 数据库密码,【双引号不要删了】
$ docker exec xxxx sh -c 'exec mysqldump -P3306 -uroot -p"password" --all-databases' > /root/bakup/all-databases.sql
备份带gzip压缩格式:
# xxx: docker 的name 字段
# password : 数据库密码,【双引号不要删了】
$ docker exec xxxx sh -c 'exec mysqldump -P3306 -uroot -p"password" --all-databases' | gzip > /root/bakup/all-databases.sql.gz
2.备份指定数据库
# xxx: docker 的name 字段
# password : 数据库密码,【双引号不要删了】
$ docker exec xxxx sh -c 'exec mysqldump -P3306 -uroot -p"password" --databases db1,db2' > /root/bakup/databases.sql
恢复数据
# xxx: docker 的name 字段
# password : 数据库密码,【双引号不要删了】
$ docker exec -i xxxx sh -c 'exec mysql -P3306 -uroot -p"password"' < /root/bakup/databases.sql

浙公网安备 33010602011771号