我正在寻找一种解决方案,根据请求,我可以根据请求同步活动mysql数据库与本地数据库之间的表。如果没有具体的解决方案,那么同步本地数据库和实时数据库有什么好的解决方案?(部分)与mysql的数据库同步
回答
总是有phpmyadmin,您可以在其中导出所选表格并再次导入它们。
这是一个实用的解决方案,如果您有一个实时数据库,您需要在开发系统上使用它。您可以获取数据库的副本,对其进行处理,例如客户表,然后将实时脱机,备份,除客户表以外的任何东西,并导入更新的数据库。
phpmyadmin的优点是它向您显示查询,然后您可以将这些脚本放在一起并在下次更新时使用它们。
@ʍǝɥʇɐɯMathew,我一直在寻找的是更自动化或自动化的东西(选择表进行同步,然后根据需要或每x天自动同步)。虽然我在技能规模的初级阶段更多,但我确实知道phpmyadmin,对我来说,它似乎是它可以获得的最多的手册,除非我还有一些功能尚未完成。 – Argoron 2011-07-14 12:37:50
...是的,但它吐出可以可靠使用的SQL语句。然后可以将这些文件放入一个文本文件中,然后运行'mysql -u user -pPASSWORD database
如果您具备以下条件
- 直播DB可以通过公网IP访问
- 所有需要的表是InnoDB的
可以进行单独的表
的mysqldump的以下是使用shell脚本在本地机器上运行时如何实现此功能的示例:
LIVEDB_IP=192.168.1.10
MYSQL_SRCUSER=whateverusername
MYSQL_SRCPASS=whateverpassword
MYSQL_SRCCONN="-h${LIVEDB_IP} -u${MYSQL_SRCUSER} -p${MYSQL_SRCPASS}"
SOURCE_DB=mydb_source
MYSQL_TGTUSER=whateverusername2
MYSQL_TGTPASS=whateverpassword2
MYSQL_TGTCONN="-h127.0.0.1 -u${MYSQL_TGTUSER} -p${MYSQL_TGTPASS}"
TARGET_DB=mydb_target
TBLLIST="tb1 tb2 tb3"
for TB in `echo "${TBLLIST}"`
do
mysqldump ${MYSQL_SRCCONN} --single-transaction ${SOURCE_DB} ${TB} | mysql ${MYSQL_TGTCONN} -A -D${TARGET_DB} &
done
wait
--single-transaction
选项会导致表的时间点快照发生,同时仍允许源数据库中的INSERT,UPDATE和DELETE返回。
如果表格比较大,可能会出现超时问题。试试这个脚本:
LIVEDB_IP=192.168.1.10
MYSQL_SRCUSER=whateverusername
MYSQL_SRCPASS=whateverpassword
MYSQL_SRCCONN="-h${LIVEDB_IP} -u${MYSQL_SRCUSER} -p${MYSQL_SRCPASS}"
SOURCE_DB=mydb_source
MYSQL_TGTUSER=whateverusername2
MYSQL_TGTPASS=whateverpassword2
MYSQL_TGTCONN="-h127.0.0.1 -u${MYSQL_TGTUSER} -p${MYSQL_TGTPASS}"
TARGET_DB=mydb_target
TBLLIST="tb1 tb2 tb3"
for TB in `echo "${TBLLIST}"`
do
mysqldump ${MYSQL_SRCCONN} --single-transaction ${SOURCE_DB} ${TB} | gzip > ${TB}.sql.gz &
done
wait
for TB in `echo "${TBLLIST}"`
do
gzip -d < ${TB}.sql.gz | mysql ${MYSQL_TGTCONN} -A -D${TARGET_DB} &
done
wait
试试吧!
CAVEAT
如果需要的表是MyISAM的,只是从mysqldump的删除--single-transaction
。这可能会导致源数据库中的查询冻结,直到mysqldump完成查询所需的表。在这种情况下,只需在低通话时间内执行此脚本。
桌面数据库管理器SQLYog有一个“Job Scheduler”工具来设置这样的事情。它需要专业或企业许可证(比声音便宜),但如果您只想先查看,则30天试用版功能全面。
- 1. 保持部分离线的sqlite数据库与postgresql同步
- 2. 链接/同步SQL数据库与MySQL数据库
- 3. 与外部数据库同步脱机数据库Windows Phone 7
- 4. 与主数据库同步
- 5. 与数据库同步
- 6. Linqtosql与数据库同步
- 7. 如何同步postgresql数据库与mysql数据库中的数据?
- 8. 同步Mysql的数据库SQLite的
- 9. 同步webSQL数据库和MySQL数据库之间的数据
- 10. 保持本地MySQL数据库与活动数据库同步(MySQL复制?)
- 11. 保持同步数据网格与MySQL数据库
- 12. Mysql的同步关系数据库
- 13. 与数据库同步数据视图
- 14. 同步远程MySql数据库与托管MySql DB
- 15. 单向同步来自外部MySQL数据库的Android SQLite数据库
- 16. 同步远程数据库(MySQL的)与SQLite数据库,反之亦然
- 17. 跨数据库的MySQL数据库同步
- 18. 两个数据库之间的Mysql数据库同步
- 19. 正在同步MySQL数据库
- 20. 如何同步mysql数据库请求?
- 21. SVN可以同步MySQL数据库吗?
- 22. 同步两个mysql数据库
- 23. MySQL数据库迁移和同步
- 24. 同步访问数据库和MySQL
- 25. Rake与我的数据库不同步
- 26. swift同步数据的核心数据mysql数据库
- 27. 同步SQLite客户端数据库与MySQL服务器数据库
- 28. 如何将mysql本地数据库与AWS云数据库同步
- 29. 与服务器数据库同步大型本地数据库(MySQL)
- 30. 本地数据库与同步适配器的自动同步
要澄清这一点,是否要将liveDB中的表中的新数据复制到localDB中的表中?你打算改变你的localDB的模式吗? – 2011-07-09 12:40:24
@ Cshift3iLike这个想法是主要同步已添加到选定表格中的任一数据库的数据。 – Argoron 2011-07-09 12:42:58