从应用程序中启动和停止本地mysql实例

我的任务是编写一些内部管理软件。 该软件与在线MySQL数据库进行通信。 但是,如果没有互联网连接,那么系统应该使用本地“离线”MySQL数据库。

起初,我试图用远程MySQL和本地SQLCE来做这件事。 遗憾的是,查询字符串是如此不同以至于不可行。

我的问题是; 如何在加载应用程序时在特定端口上启动MySQL实例,然后在软件关闭时关闭实例?

我之前已将XAMPP与一个软件捆绑在一起,但我不确定在这种情况下这是否是正确的方法?

ProcessStartInfo test = new ProcessStartInfo(Application.StartupPath + @"mysqldb\bin"); test.FileName = @"mysqld.exe"; test.UseShellExecute = true; Process.Start(test); 

你应该安装MySQL数据库localy和externaly。 加载软件时,只需使用本地数据库。 当一切正常时,将本地与实时数据库同步,并将数据库链接从本地切换到实时。 不要停止本地数据库,因为如果互联网出现故障,您需要能够使用本地数据库保存数据。

始终与本地同步,因此如果Internet已启动,请使用实时数据库,也可以使用本地数据库。 一切都需要同步。 然后,数据将始终作为“备份”或脱机数据库在计算机上运行,​​您的实时数据库将随处可用。

使用缓冲区,因此您需要在void中删除查询。 此外,在Windows下,您可以使用服务来启动和停止MySQL。

我希望我回答你的一些问题。

例如,PathtoMysql就像C:\ Program Files \ MySQL \ MySQL Server 5.0 \ bin

通过在安装路径中运行mysqld.exe来启动服务器。

使用MySqlAdmin -u root -p rootpassword Shutdown停止它

端口号将打开,将在my.ini中

即使这个问题现在已经过时了,希望这将有助于未来的任何人。 请注意,对于WPF应用程序,需要进行一些编辑

将此命名空间添加到项目中:

 using System.Diagnostics; 

使用您的应用程序目录嵌入MySQL服务器:

 YOUR APP DIR ..mysql-server <=== This is the mysql server directory under your App dir. 

现在在load事件中启动mysql服务器:

  Process mysqlCMD = new Process(); mysqlCMD.StartInfo.FileName = Environment.CurrentDirectory + "\\mysql-server\\bin\\mysqld.exe"; mysqlCMD.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; // This is to hide the black CMD window mysqlCMD.Start(); 

closing事件中,您必须停止mysql服务器,否则下次启动时会出现问题:

  Process mysqlCloseCMD = new Process(); mysqlCloseCMD.StartInfo.FileName = Environment.CurrentDirectory + "\\mysql-server\\bin\\mysqladmin.exe"; mysqlCloseCMD.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; mysqlCloseCMD.StartInfo.Arguments = "--user=root shutdown"; mysqlCloseCMD.Start();