2011-06-21 88 views
1

我有C#编写的一个winform应用。我的数据库站在MySql中。现在我想让它在其他机器上部署,而不必在每台机器上单独/安装一个mysql。请给我建议,我可以将MySql数据库与应用程序一起放入一个安装程序中,而无需在每台计算机上安装mysql。或者,如果它不可能在MySql中,我可以迁移它在Sqlite。请指点我的相关资源。创建安装程序包与MySQL C#

我看到的在此之前主板相似的问题,但他们都不是在他们的解决方案清楚。

感谢

回答

2

当遇到类似的情况,我只是附带的应用程序中的MySQL分发(这是供内部使用,你可能需要一个许可证商业销售的MySQL)。

这里就是我所做的:

  • 我安装一个MySQL服务器在本地机器上。我对其进行了配置,以便数据文件夹和配置文件与MySQL服务器的其余部分位于同一文件夹中。然后我创建了数据库,一个用户,并用相关数据填充了数据库。
  • 我在安装程序中包含了整个MySQL文件夹。安装程序将简单地将此文件夹复制到应用程序的目标文件夹。
  • 然后我可以启动MySQL这样的:{app_folder}\mysql\bin\mysqld.exe --defaults-file="{app_folder}\my.ini"。要停止我使用的MySQL:{app_folder}\mysql\bin\mysqladmin.exe -u youruser -p yourpassword shutdown。你可以让你的应用程序检查MySQL是否正在运行,如果没有,就启动它。

这可能不是最好的解决方案,因为任何人都可以很容易地访问数据库。另外我无法确认这是否适用于当前版本的MySQL(您可能需要在配置文件中指定数据文件夹)。如果数据库仅由您的应用程序使用,SQLite可能是更好的选择。

+0

先生您好,我现在也面临着同样的问题。我有2个.exe文件一个用于客户端机器,第二个用于管理员机器都是网络连接的。我已经用SQLite db开发了WPF窗口应用程序。我怎样才能从管理员机器访问数据库到其他客户机? – lashja

+0

我已经用SQLite db开发了WPF窗口应用程序。或者,如果它不可能在Sqlite我可以迁移它在MySql中。我是否需要许可证(付费)才能在商业上分发MySQL?我无法使用付费的数据库。实际上,我希望它可以在其他机器上部署,而不必在每台机器上单独/安装一个mysql。 – lashja