Резервное копирование базы данных MySQL с таблицами MyISAM и InnoDB

У меня есть база данных MySQL со смешанными таблицами (MyISAM, InnoDB).

Как я могу создать полную резервную копию базы данных с помощью mysqldump через командную строку Linux, какой вариант мне следует использовать?


person user3535392    schedule 28.08.2015    source источник
comment
Я не думаю, что это относится к StackOverflow. Лучше всего задать этот вопрос на странице dba.stackexchange.com.   -  person MeanGreen    schedule 28.08.2015


Ответы (2)


используйте ниже-

Общая команда для всех is-

mysqldump -uroot -proot123 -A > /path/mydbbackup.sql

Если вы хотите взять несколько или все БД по вашему выбору, тогда -

mysqldump -uroot -proot123 -B mydb1 mydb2 mydb3 > /path/mydbbackup.sql

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

mysqldump --single-transaction -uroot -proot123 -A > /path/mydbbackup.sql

Если вы хотите сделать определенную резервную копию базы данных, тогда -

mysqldump -uroot -proot123 mydb > /path/mydbbackup.sql

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

mysqldump -uroot -proot123 mydb mytable > /path/mydbbackup.sql

где имя пользователя - root, а пароль - root123, вы можете изменить в соответствии с вашим

Примечание. Утилита mysqldump принимает как innodb, так и myisam резервные копии.

person Zafar Malik    schedule 28.08.2015

На данный момент нет удобного решения:

  • Таблицы MyISAM нуждаются в опции --lock-tables
  • Таблицы InnoDB нуждаются в опции --single-transaction --skip-lock-tables

Оба варианта исключают друг друга. Вы должны сначала выбрать базы данных, а затем выгрузить их отдельно.

Or...

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

person Tomasz Oleksiewicz    schedule 08.04.2017
comment
По крайней мере, в последних mysqls, --single-transaction автоматически отключает --lock-tables - person Juanga Covas; 10.08.2019