У меня есть локальная база данных mysql под названием intranet_production
, а на удаленном сервере (у меня есть root-доступ к серверу и mysql) есть база данных под названием «extranet».
В удаленном extranet
База данных - это десятки таблиц. Мне нужно всего около 5 из них, поэтому импорт всей базы данных кажется чрезмерным.
Я ищу лучший способ импорта базы данных, как только импорт заработает, я настрою его как задание cron на каждые 24 часа. На данный момент удаленная база данных может перезаписывать только локальные данные, поскольку мы ничего не записываем в импортированные таблицы.
Итак, учитывая, что локальная база данных называется intranet_production
а удаленная база данных называется extranet
, как лучше всего импортировать таблицы, называемые table1
, table2
и table3
Например?
Я встретил следующий метод, но я считаю, что его нужно запустить на удаленном сервере, чтобы экспортировать таблицу. Мне нужно запустить задание cron на локальном сервере.
mysqldump db-name foo | ssh user@remote.box.com mysql bar
Любые указатели будут оценены!
Вы можете написать небольшой скрипт, который сделает следующее:
ssh user@remote.box.com "mysqldump db table1 table2 > /tmp/your_dump.sql"
rsync user@remote.box.com:/tmp/your_dump.sql /tmp/
mysql db < /tmp/your_dump.sql
При желании вы можете сжать файл во время передачи для медленных ссылок.
Вы можете использовать mysqldump с удаленными хостами:
mysqldump -h database.server.com -u username -pPassword dbName tblName > local.file.sql
вместо перенаправления в файл вы можете просто перенаправить его в mysql:
mysqldump <args> | mysql -u uname -pPwd localDbName