A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: mysqldump: command not found #Debian apt-get install mariadb-client-10.3 #Ubuntu apt-get install percona-xtradb-cluster-client-5.5 #Arch Linux pacman -S percona-server-clients #Kali Linux apt-get install mariadb-client-10.1 #Fedora dnf install mariadb-3 #Raspbian apt-get install mariadb-client-5.5
mysqldump 客户端是一个执行逻辑备份的实用程序,它产生一组 SQL 语句,可以运行这些语句来重现原始的模式对象,表数据或两者。它转储一个或多个 MySQL 数据库以进行备份或转移到另一台 SQL 服务器。 mysqldump 命令还可以生成 CSV,其他定界文本或 XML 格式的输出。
如果未使用 --single-transaction
选项,则 mysqldump 至少需要对转储表具有 SELECT 特权,对转储视图必须具有 SHOW VIEW,对转储触发器需要 TRIGGER 以及 LOCK TABLES。如选项说明中所述,某些选项可能需要其他特权。
要重新加载转储文件,您必须具有通过手动发出 CREATE 语句来创建每个转储对象所需的相同特权。
mysqldump 的输出可以包含改变数据库排序规则的 ALTER DATABASE 语句。在转储存储的程序以保留其字符编码时,可以使用这些字符。要重新加载包含此类语句的转储文件,需要对受影响的数据库具有 ALTER 特权。
mysqldump [options] db_name [tbl_name ...] mysqldump [options] --databases db_name ... mysqldump [options] --all-databases #要转储整个数据库,请不要在db_name之后命名任何表。 #或者,使用--databases或--all-databases选项。
--add-drop-table:在每个创建数据库表语句前添加删除数据库表的语句; --add-locks:备份数据库表时锁定数据库表; --all-databases:备份MySQL服务器上的所有数据库; --comments:添加注释信息; --compact:压缩模式,产生更少的输出; --complete-insert:输出完成的插入语句; --databases:指定要备份的数据库; --default-character-set:指定默认字符集; --force:当出现错误时仍然继续备份操作; --host:指定要备份数据库的服务器; --lock-tables:备份前,锁定所有数据库表; --no-create-db:禁止生成创建数据库语句; --no-create-info:禁止生成创建数据库库表语句; --password:连接MySQL服务器的密码; --port:MySQL服务器的端口号; --user:连接MySQL服务器的用户名。
以下列举了几个常用的 mysqldump
的实例:
#将整个数据库 db_name 备份到文件 backup-file.sql。 mysqldump db_name > backup-file.sql #将备份文件 backup-file.sql 装入数据库db_name。 mysql db_name < backup-file.sql #这是与上一个示例相同的另一种方法(将备份文件加载到数据库中)。 mysql -e "source /path-to-backup/backup-file.sql" db_name #使用本地数据库db_name填充远程mysql服务器的数据库db_name。 mysqldump --opt db_name | mysql --host=remote_host -C db_name #上面的命令将多个数据库(db_name1,db_name2 ...)转储到单个备份文件my_databases.sql中。 mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql #将所有数据库转储到备份文件all_databases.sql。 mysqldump --all-databases > all_databases.sql
导出整个数据库:
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
导出一个表:
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
导出一个数据库结构:
mysqldump -u用户名 -p'pass' -d --add-drop-table dbname > db_table_ddl.sql #-d没有数据,--add-drop-table每个create语句之前增加一个drop table