На Ubuntu 14.04 терминала с помощью Баша, я в состоянии сбросить с главной БД MySQL к ведомому:Выполните голова на туздЫшпре в то же время, как трубопровод для MySQL
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 --user=myuser --password=[password] --host=127.0.0.1 mydb | mysql --max_allowed_packet=128M -h 192.168.1.110 -u myuser -p[password] otherdb
Но я одновременно хочу, чтобы перенаправить выход туздЫшпр к head -30 > /tmp/pointintime.log
, так что я могу получить момент времени информация:
--
-- Position to start replication or point-in-time recovery from
--
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.049868', MASTER_LOG_POS=107;
Как это сделать? Я попытался с помощью tee
, но это приводит к SQL синтаксических ошибок в конце импорта ведомого (как будто его ломка выхода и не посылать полные заявления):
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 --user=myuser --password=[password] --host=127.0.0.1 mydb | tee >(head -30 >/tmp/pointintime.log) | mysql --max_allowed_packet=128M -h 192.168.1.110 -u myuser -p[password] otherdb
Как mysqldump
импорт к подчиненному БД MySQL и одновременно извлечь head -30
свалки? Я не хочу сначала сбрасывать файл, потому что db огромен, его более эффективен для работы по сети.
Я также попытался с помощью нескольких tee
переадресаций имели ту же ошибку синтаксиса:
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 --user=myuser --password=[password] --host=127.0.0.1 mydb | tee >(mysql --max_allowed_packet=128M -h 192.168.1.110 -u myuser -p[password] otherdb) >(head -30 >/tmp/pointintime.log)
ERROR 1064 (42000) at line 47: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near..
приятно, оцените подробное объяснение тоже. – joshweir