Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
697 views
in Technique[技术] by (71.8m points)

c# - Can MySQL be installed as an embedded database with an offline application?

I was with the choice of SQLite as database for easy distribution of my offline c# desktop application (WPF / Winforms) but currently cornered to MySQL database due to IRD certification.

My main concern is that I want to know If I could use MySQL database for offline desktop application and distribute .exe via URL for easy unattended installation.

Is it possible?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

As shown on SQLite's page Appropriate Uses For SQLite, a client/server database like MySQL would work better for client/server applications, high-volume websites, very large datasets, or high concurrency. Nothing of this applies to your offline application, so you should use a database that was designed to be embedded (not necessarily SQLite).

MySQL has an embedded server library which can be linked directly into an application. When using C#, the MySQL library is linked into the .NET MySQL database driver, so using the embedded server would require recompiling this driver. And such linking will trigger MySQL's GPL license. And:

The libmysqld embedded server library is deprecated as of MySQL 5.7.17 and will be removed in MySQL 8.0.

It would be possible to install the standalone MySQL server yourself; this is described in Installing MySQL on Microsoft Windows Using a noinstall Zip Archive. However, this would still run the MySQL server as a separate process or service, and this could conflict with other installations on the machine; it would be your installer's responsibility to configure that MySQL instance correctly for whatever environment it encounters on the target machine.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...