如果您要在MySQL数据库中存储任何您不想丢失的内容,那么定期备份数据以保护数据免受损失非常重要。本教程将向您展示两种简单的方法来备份和恢复MySQL数据库中的数据。您还可以使用此过程将数据移动到新的Web服务器。
从命令行备份(使用mysqldump)
如果您具有对Web服务器的shell或telnet访问权限,则可以使用mysqldump命令备份MySQL数据。此命令连接到MySQL服务器并创建SQL转储文件。转储文件包含重新创建数据库所需的SQL语句。这是正确的语法:
$ mysqldump --opt -u [uname] -p [pass] [dbname]> [backupfile.sql]
- **[uname]**您的数据库用户名
- **[pass]**数据库的密码(注意-p和密码之间没有空格)
- **[dbname]**数据库的名称
- **[backupfile.sql]**数据库备份的文件名
- [--opt] mysqldump选项
例如,要使用用户名“root”并且没有密码将名为“Tutorials”的数据库备份到文件tut_backup.sql,您应该完成以下命令:
$ mysqldump -u root -p Tutorials> tut_backup.sql
此命令将“Tutorials”数据库备份到名为tut_backup.sql的文件中,该文件将包含重新创建数据库所需的所有SQL语句。
使用mysqldump命令,您可以指定要备份的数据库的某些表。例如,要从“Tutorials”数据库中仅备份php_tutorials和asp_tutorials表,请完成以下命令。每个表名必须用空格分隔。
$ mysqldump -u root -p教程php_tutorials asp_tutorials> tut_backup.sql
有时需要一次备份多个数据库。在这种情况下,您可以使用--database选项,后跟要备份的数据库列表。每个数据库名称必须用空格分隔。
$ mysqldump -u root -p --databases教程文章评论> content_backup.sql
如果要一次备份服务器中的所有数据库,则应使用--all-databases选项。它告诉MySQL转储它在存储中的所有数据库。
$ mysqldump -u root -p --all-databases> alldb_backup.sql
mysqldump命令还有一些其他有用的选项:
--add-drop-table:告诉MySQL在转储中的每个CREATE TABLE之前添加DROP TABLE语句。
--no-data:只转储数据库结构,而不转储内容。
--add-locks:添加您可以在转储文件中看到的LOCK TABLES和UNLOCK TABLES语句。
mysqldump命令有优点和缺点。使用mysqldump的优点是它易于使用,它可以解决您的表锁定问题。缺点是命令锁定表。如果你的表的大小非常大,mysqldump可以锁定用户很长一段时间。
使用Compress备份MySQL数据库
如果你的mysql数据库非常大,你可能想要压缩mysqldump的输出。只需使用下面的mysql backup命令并将输出传递给gzip,然后您将获得输出为gzip文件。
$ mysqldump -u [uname] -p [pass] [dbname] | gzip -9> [backupfile.sql.gz]
如果要提取.gz文件,请使用以下命令:
$ gunzip [backupfile.sql.gz]
恢复MySQL数据库
上面我们将Tutorials数据库备份到tut_backup.sql文件中。要重新创建Tutorials数据库,您应该遵循以下两个步骤:
- 在目标计算机上创建适当命名的数据库
- 使用mysql命令加载文件:
$ mysql -u [uname] -p [pass] [db_to_restore] <[backupfile.sql]
看看如何将tut_backup.sql文件恢复到Tutorials数据库。
$ mysql -u root -p Tutorials <tut_backup.sql
要恢复压缩备份文件,您可以执行以下操作:
gunzip <[backupfile.sql.gz] | mysql -u [uname] -p [pass] [dbname]
如果需要还原已存在的数据库,则需要使用mysqlimport命令。mysqlimport的语法如下:
mysqlimport -u [uname] -p [pass] [dbname] [backupfile.sql]
使用PHPMyAdmin备份和恢复
由于许多Web服务提供商使用它,因此假设您安装了phpMyAdmin。要使用PHPMyAdmin备份MySQL数据库,只需按照以下几个步骤操作:
- 打开phpMyAdmin。
- 通过单击屏幕左侧列表中的数据库名称来选择数据库。
- 单击“导出”链接。这应该会显示一个新的屏幕,显示View dump of database(或类似的东西)。
- 在“导出”区域中,单击“全选”链接以选择数据库中的所有表。
- 在SQL选项区域中,单击右侧选项。
- 单击“另存为文件”选项和相应的压缩选项,然后单击“转到”按钮。应出现一个对话框,提示您在本地保存文件。
恢复数据库很容易,也可以备份。进行以下操作:
- 打开phpMyAdmin。
- 创建一个适当命名的数据库,然后通过单击屏幕左侧列表中的数据库名称来选择它。如果要在现有数据库上重写备份,请单击数据库名称,选中表名旁边的所有复选框,然后选择“删除”以删除数据库中的所有现有表。
- 单击SQL链接。这应该会显示一个新屏幕,您可以在其中键入SQL命令或上载SQL文件。
- 使用浏览按钮查找数据库文件。
- 单击“Go”按钮。这将上载备份,执行SQL命令并重新创建数据库。
MySQL备份软件
如果您管理多个MySQL服务器,则可以考虑使用MySQL备份的商业解决方案。一种解决方案可能是Backup Bird。它是一个完整的云服务器备份服务,可监控每个备份的进度并备份您的文件以及数据库。