绿色版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的安装真麻烦,真不是傻瓜式安装就能用,稍微配置不对就 ...
随机推荐
- 无法嵌入互操作类型"ESRI.ArcGIS.Carto.MapDocumentClass".请改用适用的接口
在对地图文档进行操作时,居然出现如下问题: IMapDocument m_MapDocument = new ESRI.ArcGIS.Carto.MapDocumentClass(); 报错: 无法嵌 ...
- MySQL复制(Replication)
引自:http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html 1.复制概述 1.1.复制解决的问题数据复制技术有以下一些特点:(1 ...
- ListView item中有button或EditText时 点击事件失效问题的解决
加入:android:descendantFocusability="blocksDescendants" 代码如下: <LinearLayout xmlns:android ...
- python输出格式对齐问题
采用.format打印输出时,可以定义输出字符串的输出宽度,在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度. 用于美化表格时很有用. >>> table = {'Goo ...
- svn checkout单个文件
http://www.letuknowit.com/archives/svn-checkout-single-file/ 有时候需要在svn版本仓库中某个比较上层的目录中(比如根目录)checkout ...
- 谈互联网开放平台:“去中心化”大势所趋 zz
文/磐石之心 几天前与好友聊到众筹咖啡馆的事情,他向我讲述了一个非常具有特色的众筹咖啡馆案例.而这个案例也引发我对当前互联网开放.去中心和集权的一些思考,今天就简单写出来与大家分享. 一个无赚钱目的的 ...
- Hadoop3集群搭建之——hive添加自定义函数UDF
上篇: Hadoop3集群搭建之——虚拟机安装 Hadoop3集群搭建之——安装hadoop,配置环境 Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoo ...
- Eclipse的maven项目一直无故报错
maven项目里面没报错,就是项目名称上有红色的叉叉,看着很不舒服: install都成功,但还是有红叉,刷新也没有用,最后搞了好一会才好: 操作步骤: 1.先把项目clean下: 选中要清理的项目, ...
- VS2012智能感知变英文解决办法
解决办法: 1.从一台没装.NET3.5的机子上复制C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\zh-CN路径下的文件覆盖就可以 2.或者重装中文版的f ...
- ORA-06553: PLS-553: character set name is not recognized, while starting Content Store
Symptom CM-CFG-5029 Content Manager is unable to determine whether the content store is initialized. ...