///

///安装并开启服务///

public static bool InitAndStartService(string serviceName, string mysqliniPath, string mysqlPath, string mysqlBinPath, stringmysqlDataPath)

{try{

A_InitDataBase(mysqlBinPath);

B_ResetMySqlConfig(mysqliniPath, mysqlPath, mysqlDataPath);

C_InstallService(mysqlBinPath, serviceName, mysqliniPath);

D_StartService(serviceName);

E_SetDefaultPassword(mysqliniPath, api.MySqlPassword);

}catch (Exception ex) { api.logger.addToLog(ex, "InitAndStartService方法出错!"); return false; }return true;

}///

///初始化数据库,如果已经发生过初始化,则不会再初始化,注意,初始化完成后是空密码。///

///

///

public static void A_InitDataBase(stringmysqlBinPath)

{if (!Directory.Exists(api.MysqlDataPath))

{try { Directory.CreateDirectory(api.MysqlDataPath); } catch{ }

}//新建初始数据库

var log = exec.RunCmd(mysqlBinPath, "mysqld --initialize-insecure --console").Trim();//--user=mysql

api.logger.addToLog("A_InitDataBase方法日志:\r\n" +log);

}///

///配置数据库ini文件,在初始化之后,启动服务之前调用。///

public static void B_ResetMySqlConfig(string mysqlIniPath, string mysqlPath, stringmysqlDataPath)

{

IniHelper ini= newIniHelper(mysqlIniPath);

ini.Write("mysqld", "basedir", (mysqlPath + "").TrimEnd('\\'));

ini.Write("mysqld", "datadir", (mysqlDataPath + "").TrimEnd('\\'));

}///

///安装服务,会执行卸载再装。///

public static void C_InstallService(string mysqlBinPath, string serviceName, stringmysqliniPath)

{

exec.RunCmd(mysqlBinPath,string.Format("mysqld.exe -remove {0}", serviceName));var log = exec.RunCmd(mysqlBinPath, string.Format("mysqld.exe -install {0} --defaults-file=\"{1}\"", serviceName, mysqliniPath));

api.logger.addToLog("C_InstallService方法日志:\r\n" +log);

}///

///启动服务///

public static bool D_StartService(stringserviceName)

{//return Cocon90.Lib.Util.Window.Service.ServiceHelper.StartService(serviceName, TimeSpan.FromSeconds(10));//开启服务

try{

ServiceController[] services=ServiceController.GetServices();

ServiceController service= services.Where(p => p.ServiceName ==serviceName).FirstOrDefault();if (service == null) return false;

service.Start();

service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(10));return service.Status ==ServiceControllerStatus.Running;

}catch (Exception ex) { api.logger.addToLog(ex, "D_StartService方法出错:"); return false; }

}///

///设置初始密码。将空密码修改为指定密码。///

public static bool E_SetDefaultPassword(string mysqliniPath, stringnewPassword)

{var port =GetDbPort(mysqliniPath);return sql.SetDefaultPassword(port, "", newPassword);

}///

///检测数据库是否存在(或者已初始化过)///

public static bool GetIsDbFileExisted(stringmysqlDataPath)

{return !(!Directory.Exists(mysqlDataPath) || Directory.GetFiles(mysqlDataPath).Length == 0 || !Directory.Exists(Path.Combine(mysqlDataPath, "mysql"))); //检查目录下有无文件,或数据目录下有无mysql文件夹//if (ifNotExistIsInit)//{// //新建初始数据库//string log = exec.RunCmd(mysqlBinPath, "mysqld --initialize-insecure --user=mysql --console").Trim();//if (log.Length > 12)//{// //获得初始密码//initPassword = log.Substring(log.Length - 12, 12);//}//}

}///

///获取当前端口///

public static string GetDbPort(stringmysqlIniPath)

{

IniHelper ini= newIniHelper(mysqlIniPath);return ini.Read("mysqld", "port");

}

mysql系统服务初始化_MySql服务初始化、安装、启动相关推荐

  1. mysql多实例安装启动_MySQL多实例安装启动

    Tips:之前我们的一个实例是mysql3306,我们现在再安装一个mysql3307 1.和之前一样,创建需要的目录文件夹 mkdir -p /data/mysql/mysql3307/{data, ...

  2. mysql数据库二进制_Mysql数据库简单安装(二进制)

    二进制安装: [root@lufengcentos ~]# mkdir /home/lufeng/tools -p [root@lufengcentos ~]# cd /home/lufeng/too ...

  3. mysql压缩包删除_mysql解压缩方式安装和彻底删除的方法图文详解

    一.安装mysql (1)将下载下来的mysql压缩文件解压缩到需要安装mysql的目录中 (2)打开解压后的文件夹,复制default.ini文件并重命名为my.ini,此文件的相关配置为: (3) ...

  4. mysql 1060指定的服务未安装_Process Exit Code: (1060) 指定的服务未安装

    今天一客户说他的SQL 2000无法远程调用.看了半天没找到原因,于是决定重新装下,结果就出了1060,百度了下解决方法贴出来下,呵呵 SQL Server 2000 安装错误,解决方法~  Proc ...

  5. mysql 1060指定的服务未安装_SQL安装错误 Process Exit Code: (1060) 指定的服务未安装...

    错误描述 12:32:50 Process Exit Code: (-1)12:32:53 安装程序配置服务器失败.参考服务器错误日志和 C:\WINDOWS\sqlstp.log 了解更多信息.12 ...

  6. mysql+在服务中无法启动_MySQL服务初始化后无法启动

    添加系统服务 [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [root@localhost ...

  7. palapaweb的mysql无法运行_Mysql 服务无法启动 服务没有报告任何错误

    今天以zip模式在windows10 64位环境下安装mysql5.7,到最后一步提示mysql服务无法启动. 安装步骤如下: 1.配置环境变量 我的电脑->属性->高级->环境变量 ...

  8. mysql 初始化_mysql时间初始化

    DATE_FORMA T(date, format) 根据格式串format 格式化日期或日期和时间值date,返回结果串. 可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值 ...

  9. mysql压缩配置_MySQL压缩版安装配置

    mysql-5.7.11默认的配置文件是在mysql/my-default.ini,或者自己建立一个my.ini文件 ----------------------------------------- ...

最新文章

  1. tradingview Vue
  2. 密度聚类 DBSCAN python实现
  3. JAVA中的反射()
  4. java 登录下线_java web中Listener的实现(实现用户在线统计数量和强制用户下线)...
  5. 34、JAVA_WEB开发基础之EL表达式和标签
  6. c语言课程笔记格式,C语言课程学习笔记.docx
  7. LeetCode 563. 二叉树的坡度(DFS)
  8. 数字图像处理--引入齐次坐标
  9. js java用var_Java基础———JavaScript基础知识
  10. sqlerror.java 1074_java.sql.SQLException: Before start of result set异常
  11. 3d 自动生成物体_相芯科技首秀SIGGRAPH,3D形象自动生成火了
  12. cocos2dx标准容器_cocos2dx基础篇(5)——浅析几个重要类
  13. 【报错】android.database.sqlite.SQLiteException: no such column: id (code 1): , while compiling: select
  14. ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) 的解决方案
  15. 2021创新创业基础(李家华)100分期末考试答案
  16. pdf签名无效解决办法_我花了一整天测试了20+款PDF工具,进来评评谁是MVP
  17. Win10电脑时间无法同步解决方法
  18. 国内外物联网平台大全
  19. 最新emoji表情代码大全_中老年表情包:微信朋友圈早晨问候语带图片 最新早上好问候语动态图片大全...
  20. [转]WIN7服务一些优化方法

热门文章

  1. MyBatis-${}与#{}
  2. markdownpad2下载安装教程
  3. Win10 中将网页转换成pdf的简便方法
  4. 将PHP作为Shell脚本语言使用
  5. DM8168的SPI接口
  6. flag push tcp 作用_TCP协议超详细解析及攻击/防范
  7. C++析构函数与构造函数深拷贝浅拷贝(C++初学面向对象编程)
  8. (篇六)C语言求自首数、完数、亲密数
  9. 第二次提交文件 merge上次版本
  10. normalize函数_【ADAMS】矩阵/数组函数