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



 

posted @ 2024-01-19 11:10  年华似水゛  阅读(63)  评论(0)    收藏  举报