C#运行bat实现对免安装MySQL的启停

2 篇文章 0 订阅

一、bat文件:

1、修改mysql的my.ini文件

port=3306
basedir="你的应用安装路径/MySQL"
datadir="你的应用安装路径/MySQL/data/"
character-set-server=utf8

2、查询是否有mysql进程在运行,有关闭。安装自己的服务,并运行服务。

@ echo off
rem 获取管理员权限运行bat
echo 正在获取管理员权限... 
%1 %2
ver|find "5.">nul&&goto :st
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof

:st
copy "%~0" "%windir%\system32\"

rem 判断mysql进程是否在运行
set /a count=0

for /f "tokens=1 delims= " %%i in ('tasklist /nh ^| find /i "mysqld"') do (set /a count+=1)

rem 转到mysql安装目录bin下
cd /d %~dp0

rem 进程存在则关闭,再安装自己的mysql服务并运行
if %count% neq 0 (

  
  taskkill /F /IM mysqld.exe /T
  mysqld --install "cdjhMySQL"
  
  net start "cdjhMySQL"
  
  
  exit
  
  )


rem 没有mysql进程运行,则安装服务并启动
if %count% equ 0 (

  
  mysqld --install "cdjhMySQL"
  net start "cdjhMySQL"
  
  exit  
)
 

3、退出应用时,关闭服务,移除安装的服务。

@ echo off
echo 获取管理员权限... 
%1 %2
ver|find "5.">nul&&goto :st
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof

:st
copy "%~0" "%windir%\system32\"

rem 停止MySQL服务并移除服务
net stop "cdjhMySQL"
cd /d %~dp0


mysqld --remove "cdjhMySQL"
echo 服务已移除

4、备份mysql数据库

echo 开始备份...
cd /d %1 %2 %3    

mysqldump  %4 %5 %6> %7
 

5、恢复mysql数据库

echo 开始恢复...
cd /d %1 %2 %3    

mysql %4 %5 %6< %7

二、 C#代码

备份部分代码,主要就是值参并执行bat文件。

          /**

            rem bat文件内容
            echo.正在执行备份...
            cd / d % 1
            mysqldump % 2 % 3 % 4 > % 5\home.dump

            pause
            **/
            if (Directory.Exists(tb_FolderPath.Text.Trim())) { 
            Process p = new Process();
            ProcessStartInfo pi = new ProcessStartInfo(path, args);//第二个参数为传入的参数,string类型以空格分隔各个参数
            pi.UseShellExecute = false;
            pi.RedirectStandardOutput = true;//为true
            pi.RedirectStandardError = true;
            //pi.Arguments = "-uroot -proot nersinghome";   //传参的另一种形式
            pi.CreateNoWindow = false;//不创建窗口   
            p.StartInfo = pi;
            p.Start();
            p.WaitForExit();
             string output = p.StandardOutput.ReadToEnd();//回调

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值