Ответ 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
для воспроизведения файлов двоичного журнала из положения, в котором была сделана эта дампа.