mysqldump工具很多方面类似相反作用的工具mysqlimport。
它们有一些同样的选项。但mysqldump能够做更多的事情。
它可以把整个数据库装载到一个单独的文本文件中。
这个文件包含有所有重建您的数据库所需要的SQL命令。
如果您使用 MySQL 数据库,了解如何备份和恢复数据对您来说非常重要。
此外,您需要定期备份数据库,这将有助于您在应用程序崩溃或数据因任何系统故障而损坏时恢复数据。
MySQL 和 MariaDB 包含命令行工具,您可以使用这些工具快速轻松地转储和恢复数据库。
该 mysqldump 工具用于将数据库的内容导出到文本文件,
而 mysql 客户端可用于将文本文件中的数据导入 MySQL/MariaDB 数据库。
如何使用 MySQL dump命令
该 mysqldump 命令行工具导出数据库SQL文本文件。
换句话说,它用于获取 MySQL 数据库转储。
mysqldump命令的语法如下:
mysqldump -u [username] -p [database_name] > [filename].sql
解释如下:
username 是您的 MySQL/MariaDB 用户名。
-p提示输入此用户的密码。
database_name 是要备份的数据库的名称。
filename.sql 是包含备份的 sql 转储文件的完整路径。
数据库过程、函数、视图和事件在备份时被转储。
备份单个 MySQL 数据库
在此示例中,数据库名为 linuxmi_wordpress。将其替换为您要导出的数据库的名称。
根据语法,将在当前位置创建备份文件。
mysqldump -u root -p linuxmi > linuxmi_backup.sql
mysqldump --user=user --password=password --lock-all-tables dbname > backup.sql
命令运行后,输入您的 MySQL 根密码。
这将创建一个名为 MySQL 转储文件linuxmi_backup.sql,其中包含用于创建表和将数据恢复到现有数据库的所有 SQL 语句。
如果在导出过程中发生任何错误, mysqldump 会将它们打印到屏幕上。
该命令不会产生视觉输出,但您可以检查my_wordpress_backup.sql
使用 head 命令的内容 来检查它是否是合法的 MySQL 转储文件。
head -n 5 linuxmi_backup.sql -- MariaDB dump 10.19 Distrib 10.5.9-MariaDB, for Linux (x86_64) -- Host: localhost Database: linuxm -- Server version 10.3.27-MariaDB-0+deb10u1
备份多个 MySQL 数据库
要使用一个命令备份多个 MySQL 数据库,您需要使用--databases 后跟要备份的数据库列表的 选项。此外,您可以将结果文件放在您选择的位置。
运行以下命令my_backup.sql在 /home/backups名为my_wordpress 和的两个数据库的目录中创建一个 MySQL 转储文件ftpusers。
mysqldump -u root -p --databases my_wordpress ftpusers > /home/backups/my_backup.sql
mysqldump --user=user --password=password --lock-all-tables --databases dbname1
备份所有 MySQL 数据库
使用该 --all-databases 选项备份所有 MySQL 数据库:
mysqldump -u root -p --all-databases > all_db_backup.sql
mysqldump --user=user --password=password --lock-all-tables --all-databases > backup.sql
压缩的 MySQL 数据库备份
如何创建压缩的 MySQL 数据库备份
如果数据库大小非常大,最好压缩输出。要做到这一点,只需将输出通过管道传输到 gzip 命令,然后将其重定向到一个文件,如下所示:
mysqldump -u root -p my_wordpress | gzip > my_wordpress_backup.sql.gz
从 MySQL 转储文件中恢复 MySQL
要恢复使用 创建的备份mysqldump,您需要使用该 mysql命令。
mysql -u [username] -p [database_name] < [filename].sql
详细解释:
username 是您的 MySQL/MariaDB 用户名。
-p提示输入此用户的密码。
database_name 是要在其中还原的数据库的名称。
filename.sql 是包含备份的 sql 转储文件的完整路径。
mysql:恢复单个 MySQL 数据库
您可以从任何特定数据库的 MySQL 转储文件中恢复所有表。
恢复只需使用以下命令执行,我们再次指定用户并提示输入密码,并将my_wordpress_backup.sql文件传递到数据库中my_wordpress。
mysql -u root -p my_wordpress < my_wordpress_backup.sql
系统将提示您输入 MySQL 用户的密码。
完成此操作后,数据库应该可以在正在运行的 MySQL 实例中使用。
您从中导入的 MySQL 转储文件也将仍然存在,因此您可以此时安全地存储该文件,或者在不再需要时将其删除。
mysql:恢复所有 MySQL 数据库
您可以将任何 MySQL 服务器的所有数据库从 MySQL 转储文件恢复到另一个 MySQL 服务器。
mysql -u root -p < all_db_backup.sql
实战:
mysqldump -u root -p密码 -l -F --all-databases > /home/www/vip/all$(date +"%Y%m%d").sql