我选择SQLite作为数据库,以便轻松分发我的离线c#桌面应用程序(WPF / Winforms),但由于IRD认证,目前已进入MySQL数据库。
我主要担心的是,我想知道如果我可以将MySQL
数据库用于离线桌面应用程序,并通过 URL 分发.exe
,以便轻松实现无人参与安装。
有可能吗?
答案 0 :(得分:1)
如SQLite的页面Appropriate Uses For SQLite所示,像MySQL这样的客户端/服务器数据库可以更好地用于客户端/服务器应用程序,大容量网站,非常大的数据集或高并发性。这些都不适用于您的离线应用程序,因此您应该使用旨在嵌入的数据库(不一定是SQLite)。
MySQL有embedded server library,可以直接链接到应用程序。使用C#时,MySQL库链接到.NET MySQL数据库驱动程序,因此使用嵌入式服务器需要重新编译此驱动程序。这种链接将触发MySQL的GPL许可。和
自MySQL 5.7.17起,
libmysqld
嵌入式服务器库已弃用,将在MySQL 8.0中删除。
可以自己安装独立的MySQL服务器;这在Installing MySQL on Microsoft Windows Using a noinstall Zip Archive中有所描述。 但是,这仍然会将MySQL服务器作为单独的进程或服务运行,这可能与计算机上的其他安装冲突;安装人员有责任为目标机器上遇到的任何环境正确配置MySQL实例。