SQLite与mysql之间有没有同步机制?

renic1987 2010-12-08 09:18:19
**************RT************************

本人现在在嵌入式系统中有一个SQLite数据库,在另外一台服务器中有mysql,如果SQLite中的数据有修改或者建立了新表新元素,有没有一种可用的方法让mysql中同样有相同的操作?还是需要自己来处理这种情况?如果是后者,应该采用何种方法比较合适呢?

本人对具体数据库的操作不是非常熟悉,希望大虾们多给点宝贵意见参考~~谢谢!
...全文
950 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
中小刀 2012-01-06
  • 打赏
  • 举报
回复
此问题比较有趣
iihero 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 renic1987 的回复:]
你对appweb了解不?这个嵌入式web server对SQLite提供完整的数据映射,调用内部类可以很方便的支持对SQLite的操作,对远程的mysql可以用标准的SQL接口吗?
[/Quote]

我不了解你这个web server里边用的是什么编程接口来访问Sqlite,只要是远程访问,总有办法能访问mysql,标准接口,由于是异机,估计够呛。
renic1987 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 iihero 的回复:]
引用 6 楼 renic1987 的回复:

引用 3 楼 iihero 的回复:
写一个同步模块吧。可以定时执行。实时同步,则比较麻烦。


对本地数据库的操作都是通过嵌入式的web server来做的,那同步模块应该放在哪里执行呢?

你这样的使用场景, 不用定时执行。
每一次本地操作,发一个远程的mysql请求,执行相同的逻辑。这样也许会简单一些。
你的本地操作在哪里执行……
[/Quote]

你对appweb了解不?这个嵌入式web server对SQLite提供完整的数据映射,调用内部类可以很方便的支持对SQLite的操作,对远程的mysql可以用标准的SQL接口吗?
rucypli 2010-12-09
  • 打赏
  • 举报
回复
你的启动顺序对吗 管理机,ndb,sql
iihero 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 renic1987 的回复:]

引用 3 楼 iihero 的回复:
写一个同步模块吧。可以定时执行。实时同步,则比较麻烦。


对本地数据库的操作都是通过嵌入式的web server来做的,那同步模块应该放在哪里执行呢?
[/Quote]
你这样的使用场景, 不用定时执行。
每一次本地操作,发一个远程的mysql请求,执行相同的逻辑。这样也许会简单一些。
你的本地操作在哪里执行,那附加动作就在哪里执行。
renic1987 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iihero 的回复:]
写一个同步模块吧。可以定时执行。实时同步,则比较麻烦。
[/Quote]

对本地数据库的操作都是通过嵌入式的web server来做的,那同步模块应该放在哪里执行呢?
renic1987 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wwwwa 的回复:]
不能,只能分别写SQL语句(代码)
[/Quote]


意思是,如果有修改或者建表等,在web server中同时对两个数据库做同样的操作?
wangzi7810517 2010-12-09
  • 打赏
  • 举报
回复
我没有分值发帖了,站在巨人的肩膀上发个帖子,别介意。
问题:
bin> ndbd --initial
Unable to connect with connect string: nodeid=0,localhost:1186
Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.
2010-12-07 17:04:22 [ndbd] ERROR -- Could not connect to management server, e
rror: ''

我下载了mysql-cluster-gpl-noinstall-7.1.9a-win32免安装版做mysql cluster,在启动数据节点时出现了无法连接的情况:
bin> ndbd --initial
Unable to connect with connect string: nodeid=0,localhost:1186
Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.
2010-12-07 17:04:22 [ndbd] ERROR -- Could not connect to management server, e
rror: ''

我的过程是这样的:
(1) 管理节点的配置

创建文件夹:c:\mysql
c:\mysql\bin (并将 ndb_mgmd.exe 和 ndb_mgm.exe 复制进去)
c:\mysql\bin\cluster-logs
在 c:\mysql\bin 下创建两个文件 conf.ini、my.ini

config.ini配置如下:

[ndbd default]
NoOfReplicas=2
DataMemory=200M
IndexMemory=100M

[TCP DEFAULT]

[NDB_MGMD]
nodeid=1
hostname=172.16.3.27
datadir=D:\Program Files\mysqlcluster\datanode\mysql\bin\cluster-data

[NDBD]
nodeid=2
hostname=172.16.3.28
datadir=C:\mysql\mysql-cluster

[NDBD]
nodeid=3
hostname=172.16.3.30
datadir=C:\mysql\mysql-cluster

[MySQLD]
[MySQLD]

my.ini配置如下:

[mysql_cluster]
config-file=C:\mysql\bin\config.ini

(2)数据节点和sql节点的配置(数据节点和sql节点为同一台机)
建文件夹: D:/Program Files/mysqlcluster/datanode/mysql/bin (并将ndbd.exe放进去)
D:/Program Files/mysqlcluster/datanode/mysql/cluster-data
D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data
D:/Program Files/mysqlcluster/sqlnode (将解压后的整个文件夹mysql放进去)

在D:/Program Files/mysqlcluster/datanode/mysql/bin目录下生成文件my.ini,内容为:

[mysql_cluster]
ndb-connectstring=172.16.3.27

在D:/Program Files/mysqlcluster/sqlnode/mysql下生成my.ini文件,内容为:
[mysqld]
ndbcluster
ndb-connectstring=172.16.3.27

(3)启动管理节点
c:\mysql\bin>ndb_mgmd -f conf.ini
MySQL Cluster Management Server mysql-5.1.51 ndb-7.1.9

c:\mysql\bin>ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 172.16.3.28)
id=3 (not connected, accepting connect from 172.16.3.30)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.16.3.27 (mysql-5.1.51 ndb-7.1.9)

[mysqld(API)] 3 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

(4) 启动数据节点
D:\Program Files\mysqlcluster\datanode\mysql\bin>ndbd --initial
Unable to connect with connect string: nodeid=0,localhost:1186
Retrying every 5 seconds. Attempts left: 12 11 10

数据节点连接不上,在管理节点上运行ndb_mgm
c:\mysql\bin>ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 172.16.3.28)
id=3 (not connected, accepting connect from 172.16.3.30)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.16.3.27 (mysql-5.1.51 ndb-7.1.9)

[mysqld(API)] 3 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
id=6 (not connected, accepting connect from any host)

ndb_mgm> connect 172.16.3.28
Unable to connect with connect string: nodeid=0,172.16.3.28:1186
Retrying every 5 seconds. Attempts left: 2

管理节点和数据节点互相 connect 不上 (防火墙关了,终端互相ping通)

望高手指点!
iihero 2010-12-09
  • 打赏
  • 举报
回复
写一个同步模块吧。可以定时执行。实时同步,则比较麻烦。
WWWWA 2010-12-09
  • 打赏
  • 举报
回复
不能,只能分别写SQL语句(代码)
wangzi7810517 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 rucypli 的回复:]
你的启动顺序对吗 管理机,ndb,sql
[/Quote]

我先起得管理机:
c:\mysql\bin>ndb_mgmd -f conf.ini
MySQL Cluster Management Server mysql-5.1.51 ndb-7.1.9

c:\mysql\bin>ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 172.16.3.28)
id=3 (not connected, accepting connect from 172.16.3.30)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.16.3.27 (mysql-5.1.51 ndb-7.1.9)

[mysqld(API)] 3 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

然后起ndb:
D:\Program Files\mysqlcluster\datanode\mysql\bin>ndbd --initial
Unable to connect with connect string: nodeid=0,localhost:1186
Retrying every 5 seconds. Attempts left: 12 11 10

连不上,sql我就没起了
ACMAIN_CHM 2010-12-08
  • 打赏
  • 举报
回复
没有。

异构数据库同步,你需要自己写代码来实现。

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧