mysqldump — A Database Backup Program •Performance Options •Transactional Options •Option Groups •Examples •Restrictions mysqldump  requires at least the  SELECT  privilege for dumped tables,  SHOW VIEW  for dumped views, TRIGGER  for dumped triggers,  LOCK TABLES  if the  --single-transaction  option is not used, and (as of MySQL 8.0.21)  PROCESS  if the  --no-tablespaces  option is not used. Certain options might require other privileges as noted in the option descriptions. To reload a dump file, you must have the privileges required to execute the statements that it contains, such as the appropriate  CREATE  privileges for objects created by those statements. A dump made using PowerShell on Windows with output redirection creates a file that has UTF-16 encoding: Note mysqldump [options] > dump.sql However, UTF-16 is not permitted as a connection character set (see Impermissible Client Character Sets), so the dump file cannot be loaded correctly. To work around this issue, use the  --result-file  option, which creates the output in ASCII format: mysqldump [options] --result-file=dump.sql Performance and Scalability Considerations mysqldump  advantages include the convenience and flexibility of viewing or even editing the output before restoring. You can clone databases for development and DBA work, or produce slight variations of an existing database for testing. It is not intended as a fast or scalable solution for backing up substantial amounts of data. With large data sizes, even if the backup step takes a reasonable time, restoring the data can be very slow because replaying the SQL statements involves disk I/O for insertion, index creation, and so on. For large-scale backup and restore, a physical backup is more appropriate, to copy the data files in their original format that can be restored quickly: •If your tables are primarily  InnoDB  tables, or if you have a mix of  InnoDB  and  MyISAM  tables, consider using the  mysqlbackup  command of the MySQL Enterprise Backup product. (Available as part of the Enterprise subscription.) It provides the best performance for  InnoDB  backups with minimal disruption; it can also back up tables from  MyISAM  and other storage engines; and it provides a number of convenient options to accommodate different backup scenarios. See Section 30.2, “MySQL Enterprise Backup Overview” . mysqldump  can retrieve and dump table contents row by row, or it can retrieve the entire content from a table and buffer it in memory before dumping it. Buffering in memory can be a problem if you are dumping 473 mysqldump  output can include  ALTER DATABASE  statements that change the database collation. These may be used when dumping stored programs to preserve their character encodings. To reload a dump file containing such statements, the  ALTER  privilege for the affected database is required.