Как создать резервную копию всей базы данных MySQL со всеми пользователями и разрешениями и паролями?

Мне нужно создать резервную копию всей базы данных MySQL с информацией обо всех пользователях и их разрешениях и паролях.

Я вижу варианты http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/, но какими должны быть варианты резервного копирования всей базы данных MySQL со всеми пользователями, паролями и разрешениями и всеми данными базы данных?

Просто полная резервная копия MySQL, поэтому я могу импортировать позже на другой компьютер.

Ответ 1

У него самая основная, команда mysqldump, которую вы можете использовать:

mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql

Это будет включать в себя базу данных mysql, которая будет иметь все таблицы users/privs.

Есть недостатки для запуска этого в производственной системе, поскольку это может привести к блокировке. Если ваши таблицы достаточно малы, это может не оказать существенного влияния. Сначала вы захотите проверить его.

Однако, если вы используете чистую среду InnoDB, вы можете использовать флаг --single-transaction, который будет создавать дамп в одной транзакции (получить его), тем самым предотвращая блокировку в базе данных. Обратите внимание, что есть угловые случаи, когда начальная команда FLUSH TABLES, запускаемая дампом, может блокировать таблицы. Если это так, убейте дамп и перезапустите его. Я также рекомендовал бы, если вы используете это для целей резервного копирования, используйте флаг --master-data, чтобы получить координаты двоичного журнала, откуда была сделана свалка. Таким образом, если вам нужно восстановить, вы можете импортировать файл дампа, а затем использовать команду mysqlbinlog для воспроизведения файлов двоичного журнала из положения, в котором была сделана эта дампа.

Ответ 2

Если вы хотите перенести также хранимые процедуры и триггеры, возможно, стоит использовать

mysqldump --all-databases --routines --triggers

если у вас есть репликация master/slave, вы можете сбросить настройки

--dump-slave и/или --master-data