在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具。本文将简介MySQL如何使用mysqldump
工具进行数据备份。
sudo
命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器。mysqldump
命令的一般语法是:
mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
-$(date +%F)
为文件名添加时间戳。mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
db1
为要备份的数据库的名称:mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
table1
从数据库导出db1
:mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
以下是mysqldump
上面使用的命令选项的细分:
--single-transaction
:在从服务器转储数据之前发出BEGIN SQL语句。--quick
:逐行执行转储表。为具有少量RAM和/或大型数据库的系统增加了安全性,其中在内存中存储表可能会成为问题。--lock-tables=false
:不要锁定备份会话的表。可以添加条目/etc/crontab
以定期计划数据库备份。
创建一个文件来保存将要执行备份的MySQL root用户的登录凭据。请注意,存储此文件的主目录的系统用户与MySQL用户无关。
1 [client]
2 user = root
3 password = MySQL root user's password
限制凭证文件的权限:
chmod 600 /home/example_user/.mylogin.cnf
创建cron作业文件。下面是每天凌晨1点备份整个数据库管理系统的示例cron作业:
10 1 * * * /usr/bin/mysqldump mysqldump --defaults-extra-file=/home/example_user/.my.cnf -u root --single-transaction --quick --lock-tables=false --all-databases > full-backup-$(date +%F).sql
恢复命令的一般语法是:
mysql -u [username] -p [databaseName] < [filename].sql
这将覆盖MySQL数据库系统中的所有当前数据
mysql -u root -p < full-backup.sql
mysql -u [username] -p db1 < db1-backup.sql
mysql -u dbadmin -p db1 < db1-table1.sql
有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。
自建服务器难免会遇到这样的问题,但是如果您在生产环境使用,我还是建议您直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展的关系型数据库,提供安全可靠、伸缩灵活的按需云数据库服务。腾讯云关系型数据库提供 MySQL、SQL Server、MariaDB、PostgreSQL 数据库引擎,并针对数据库引擎的性能进行了优化。云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。更多Linux教程请前往腾讯云+社区学习更多知识。
参考文献:《Use mysqldump to Back Up MySQL or MariaDB》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。