备份单个mysql数据库
例如,要使用用户root
创建名为 data
的数据库的备份并将其保存到名为 data.sql
的文件中,您可以运行以下命令
mysqldump -u root -p data > data.sql
可以自定义输出到哪个目录
mysqldump -u root -p data > /roo/data.sql
系统将提示您输入root密码。成功通过身份验证后,转储过程将开始。根据数据库的大小,此过程可能需要一些时间
备份多个mysql数据库
要使用一个命令备份多个MySQL
数据库,您需要使用--databases
选项,后跟要备份的数据库列表。每个数据库名称必须用空格分隔。
mysqldump -u root -p --databases data-1 data-2 > data-1-2.sql
备份所有mysql数据库
使用--all-databases
选项备份所有MySQL数据库
mysqldump -u root -p --all-data > data.sql
创建压缩的MySQL数据库备份
如果数据库很大,最好压缩输出,只需将输出通过管道传递到 gzip
实用程序,然后将其重定向到一个文件
mysqldump -u root -p data | gzip > data.sql.gz
使用date命令,时间戳创建备份
mysqldump solo > data-$(date +%Y%m%d).sql
data-20201126.sql #输出结果
更多时间戳请参考:date命令的参数及用法
还原mysql备份文件到数据库
在大多数情况下,您需要创建要导入的数据库,如果数据库已经存在,则首先需要将其删除。
再创建相同名称数据库
mysql -uroot -p db_name < db_name.sql
经过压缩的备份文件还原
gunzip < data.sql.gz | mysql -u root -p data
包含多个数据库备份文件的单个还原
如果使用--all-databases
选项备份了所有数据库,并且想要从包含多个数据库的备份文件中还原单个数据库,请使用--one-database
选项,要记住里面有几个数据库分别叫什么名字
mysql -uroot -p --one-database 数据库名 < data.sql
设置mysqldump免密码
每次敲mysqldump
都要敲密码很麻烦设置可以免密执行该命令
vim /etc/my.cnf
...
[mysqldump] #添加该模块填写用户和密码
user=root
password=123456
下次使用该命令就不用敲密码啦
使用Cron自动执行定时备份
请参考:Mysql数据库远程定时备份