绿色版Mysql自动建立my.ini和命令行启动并动态指定datadir路径
1、先去下载绿色版的Mysql(https://cdn.mysql.com//archives/mysql-5.7/mysql-5.7.20-winx64.zip)
2、解压缩到任意目录(如D:\Mysql),并保证此目录是根目录,即访问bin目录的访问路径是(D:\Mysql\bin)
3、在D:\Mysql下建立一个文本文件(编码格式为ANSI,不要Utf8格式,否则会乱码)
4、写入以下批处理代码
echo off
del my.ini
echo [mysqld]>>my.ini
echo port=3306>>my.ini
echo character-set-server=utf8mb4>>my.ini
echo default-storage-engine=INNODB>>my.ini
set CURRENT_DIR=%CD%
set CURRENT_DIR=%CURRENT_DIR:\=\\%
echo basedir="%CURRENT_DIR%\\">>my.ini
echo datadir="%CURRENT_DIR%\\data\\">>my.ini
echo "set basedir parameter coplete"
cd %CURRENT_DIR%\bin
mysqld --install mysql --defaults-file="%CURRENT_DIR%\\my.ini"
5、重命名新建的文本文件为批处理文件名格式,如 1.txt重命名为 1.bat
6、双击运行1.bat,如果没有报错,则运行成功,可以通过数据库管理客户端连接。
7、使用C#代码在程序中自动注册(运行上面的bat批处理)Mysql服务和启动Mysql服务(WPF环境下,如其它环境,则去掉Wpf下的关键字即可使用,前提是有权限调用cmd和有权限安装服务)
try
{
//安装服务
var proc = new Process();
var info = new ProcessStartInfo("cmd.exe")
{
WorkingDirectory = $@"{AppDomain.CurrentDomain.BaseDirectory}\MySQL\",
FileName = $@"{AppDomain.CurrentDomain.BaseDirectory}\MySQL\runmysql.bat",
UseShellExecute = true,
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true
}; proc.StartInfo = info;
proc.Start();
//var output = proc.StandardOutput.ReadToEnd();//读取进程的输出
//Console.WriteLine(output);
proc.WaitForExit();
Dispatcher?.Invoke(() =>
{
lb_info.Text += @"【成功】" + Environment.NewLine;
});
}
catch (Exception ex)
{
App.Log4Helper.Error("服务安装失败:" + ex.Message);
App.Log4Helper.Error(ex.Message);
Dispatcher?.Invoke(() =>
{
lb_info.Text += @"【失败】" + Environment.NewLine;
});
}
//启动服务
var serviceController = new ServiceController("mysql");
if (serviceController.Status != ServiceControllerStatus.Running)
{
Dispatcher?.Invoke(() =>
{
lb_info.Text += @"数据库启动...";
}); try
{
serviceController.Start();
serviceController.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 0, 15));
if (serviceController.Status != ServiceControllerStatus.Running)
{
MessageBox.Show(@"数据库服务启动失败,请检查数据库服务配置文件。", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
Environment.Exit(0);
return;
}
Dispatcher?.Invoke(() =>
{
lb_info.Text += @"【成功】" + Environment.NewLine;
});
}
catch (Exception ex)
{
App.Log4Helper.Error("数据库启动失败:" + ex.Message);
App.Log4Helper.Error(ex.Message);
Dispatcher?.Invoke(() =>
{
lb_info.Text += @"【失败】" + Environment.NewLine;
});
}
}
PS: set CURRENT_DIR=%CURRENT_DIR:\=\\% 这句的意思是把目录里面所有\转换成\\,防止遇到类似于 \bin这种目录路径的时候把\b给转义了,下面的\\都是这个用途,防止转义。
绿色版Mysql自动建立my.ini和命令行启动并动态指定datadir路径的更多相关文章
- mysql学习-windows下绿色版mysql安装问题解决办法
1.下载绿色版mysql 从该地址http://dev.mysql.com/downloads/mysql/ 中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3.将根目录下的my-d ...
- windows 安装绿色版mysql
(1)到官网下载绿色版mysql:http://dev.mysql.com/downloads/mysql/ (2)下载好后,放在F:\mysql,解压出来 (3)进入到mysql-5.6.19-wi ...
- windows下启动mysql服务的命令行启动和手动启动方法
1.图形界面下启动mysql服务. 在图形界面下启动mysql服务的步骤如下: (1)打开控制面板->管理工具->服务,如下图所示: 可以看到Mysql服务目前的状态是未启动(未写已启动的 ...
- 从Windows命令行启动MySQL
SERVER: 从Windows命令行启动MySQL 可以从命令行手动启动MySQL服务器.可以在任何版本的Windows中实现. 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS ...
- 【Problem】xampp in ubuntu下命令行启动mysql报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2)
xampp in ubuntu下命令行启动mysql报错: reddevil@reddevil-Lenovo:/opt/lampp$ ./bin/mysql -u root -p Enter pass ...
- 绿色版mysql注册卸载服务
如果直接用绿色版的mysql,则下载后解压,只需对目录下的my.ini文件的basedir(mysql的基本目录)和datadir(mysql数据目录)指定就可以,如下所示. #Path to ins ...
- 绿色版mysql 免安装使用(转载)
MySQL绿色版的安装(mysql-5.6.22-win32.zip) Posted on 2015-01-31 23:21 卒子 阅读(10739) 评论(2) 编辑 收藏 由于工作需要最近要开始研 ...
- (转载)绿色版Mysql的安装配置
本文出自于:http://johnnyhg.javaeye.com/blog/245544 一.下载MySQL http://www.mysql.org/downloads 我下载的是mysql-no ...
- 安装绿色版mysql小记(5.7.11)
平时使用oracle,感觉太耗我电脑内存了,实在不想用oracle做平时练习了,那就只装一个客户端,工作用..平时自己试试mysql吧..mysql的安装真麻烦,真不是傻瓜式安装就能用,稍微配置不对就 ...
随机推荐
- github 与gitlab之间的工程创建
1.从github上git clone下来一个工程,Clone with HTTPS(不是ssh模式,要权限). 2.进入git下来的包cd 包下,打开gedit /.git/config,内容大致如 ...
- 【Linux】DNS服务-BIND基础配置(二)
BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet ...
- 求先序排列(NOIP2001&NOIP水题测试(2017082301))
题目链接:求先序排列 这道题讲白了,就是数的构造,然后遍历. 思路大致是这样: 我们先通过后序遍历,找到当前区间的根,然后在中序遍历中找到根对应的下标,然后就可以分出左右子树,建立当前根与左右子树根的 ...
- Win7 VS2015及MinGW环境编译FFMPEG-20160326
因为又要弄MinGW了,所以顺便把FFMPEG编译了,文章主要参考这篇,防抽所以复制一遍,顺便加些自己的内容 http://blog.csdn.net/finewind/article/details ...
- 2-具体学习Github---init add commit log diff
1.安装: 首先找到git的官网,内部有下载链接. 也可以用下面的,我的是win7的64位系统: 可以在此处下载:Git-2.13.0-64-bit.exe链接:http://pan.baidu.co ...
- Arria10中的IOPLL与fPLL
最近在用Arria10.从480降到270的过程中,IOPLL出现问题,大概是说几个Bank的IOPLL已经被占用,没有空间再给别的IOPLL去适配. 因为在工程中,所用的PLL多达35个之多,其中明 ...
- poj 1094 Sorting It All Out 拓补排序
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- Linux服务器密钥安全登录
使用密钥登录的好处:1.省事,不用每次去敲用户名和密码:2.安全,密钥长度一般是1024位,比我们设的密码要长得多: 以下是为新用户jackson添加密钥登录的步骤. 1.添加用户,并添加到sudoe ...
- 大压力下Redis参数调整要点
调整以下参数,可以大幅度改善Redis集群的稳定性: 为何大压力下要这样调整? 最重要的原因之一Redis的主从复制,两者复制共享同一线程,虽然是异步复制的,但因为是单线程,所以也十分有限.如果主从间 ...
- MIT molecular Biology 笔记8 RNA剪接
视频 https://www.bilibili.com/video/av7973580/ 教材 Molecular biology of the gene 7th edition J.D. Wat ...