批处理命令篇--配置免安装mysql 5.6.22, 以

系统 1443 0

 

mysql 服务启动出现1067错误的一个解决方法:

当服务启动出现1067错误时,可查看“windows 事件查看器”,发现类似错误提示

Can't find messagefile 'F:\    ools\mysql\mysql-5.6.22-winx64\share\errmsg.sys',

但是配置似乎没问题:

basedir=F:\tools\mysql\mysql-5.6.22-winx64
datadir=F:\tools\mysql\mysql-5.6.22-winx64\data

于是,猜想是否路径问题,解决方案:

basedir=F: / tools\mysql\mysql-5.6.22-winx64
datadir=F: / tools\mysql\mysql-5.6.22-winx64\data

 或者

basedir=F:\\tools\\mysql\\mysql-5.6.22-winx64
datadir=F:\\tools\\mysql\\mysql-5.6.22-winx64\data

以下原文: 批处理命令篇--配置免安装mysql (已修改)

免安装版的mysql是进行软件绿色发布的绝佳助手,本文介绍一种使用批处理命令自动配置mysql的方法。
(1)建立三个文件,分别是:service install.bat,temp.txt,update.sql。
(2)在temp.txt文件中写入如下内容:
set PathTemp=
(3)在update.sql文件中写入如下内容:
use mysql
update user set host='%' where user='root' and host='127.0.0.1';
update user set password=password('root') where user='root' and host='%';
quit
(4)在service install.bat文件中写入如下内容:
 

      
        @echo
      
      
        off
      
      
        rem
      
      
         停止mysql56服务(如果存在)
      
      
        net
      
      
         stop mysql56


      
      
        rem
      
      
         @echo off的作用是关闭回显功能
      
      
        rem
      
      
         以下测试路径
      
      
        echo
      
      
         当前盘符:%~d0 


      
      
        echo
      
      
         当前盘符和路径:%~dp0 


      
      
        echo
      
      
         当前批处理全路径:%~f0 


      
      
        echo
      
      
         当前盘符和路径的短文件名格式:%~sdp0 


      
      
        echo
      
       当前CMD默认目录:%
      
        cd
      
      
        % 




      
      
        set
      
       mypath=
      
        %~dp0


      
      
        set
      
       mypath=%mypath:\=\\
      
        %


      
      
        echo
      
      
         批处理文件所在路径转为双斜杠短名: %mypath%


      
      
        echo
      
       当前批处理正工作的路径转换后: %
      
        cd
      
      :\=\\
      
        %






      
      
        rem
      
      
         找到当前路径
      
      
        

rem
      
      
         将temp.txt文件中内容拷贝到temp.bat文件中
      
      
        

rem
      
      
         temp.txt文件中的内容是“set PathTemp=”
      
      
        

rem
      
      
         特别注意:“=”后面不能加回车
      
      
        copy
      
       temp.txt temp.
      
        bat




      
      
        rem
      
      
         将路径添加到temp.bat文件中
      
      
        cd
      
      >>temp.
      
        bat




      
      
        rem
      
      
         执行temp.bat文件中命令
      
      
        

rem
      
      
         temp.bat文件执行后,路径已经保存在PathTemp变量中
      
      
        call
      
       temp.
      
        bat




      
      
        rem
      
      
         删除temp.bat文件
      
      
        

rem
      
      
         del temp.bat
      
      
        rem
      
      
         复制 my-default.ini文件
      
      
        copy
      
       my-default.ini my.
      
        ini




      
      
        rem
      
      
         设置my.ini的标记位
      
      
        set
      
       tag=
      
        [mysqld]




      
      
        rem
      
      
         设置添加到my.ini文件中的数据库路径和数据路径
      
      
        

rem
      
      
         set datadir=datadir=%PathTemp%\data的意思是:
      
      
        

rem
      
      
         将字符串“datadir=”、变量PathTemp对应的字符串以及字符串“\data”赋值给datadir变量
      
      
        set
      
       basedir=basedir=%PathTemp:\=\\
      
        %


      
      
        set
      
       datadir=datadir=%PathTemp:\=\\%\
      
        data




      
      
        rem
      
      
         设置运行环境变量homedir
      
      
        set
      
       homedir=%PathTemp%\
      
        bin




      
      
        rem
      
      
         设置变量延迟
      
      
        

rem
      
      
         注意:使用变量延迟后,相关变量用!!包围,这样程序才能正确识别
      
      
        setlocal
      
      
         enabledelayedexpansion




      
      
        rem
      
      
         循环查找my.ini文件中的内容
      
      
        for
      
       /f "tokens=*" %%i in (my.ini) 
      
        do
      
       (




      
        rem
      
      
         将从my-default.ini文件中读到的字符串,赋值给变量p
      
      
        set
      
       p=
      
        %%i




      
      
        rem
      
      
         如果变量p的内容和my-default.ini的标记位相同
      
      
        

rem
      
      
         将变量p的内容写入my.ini文件中,同时在其后面加入两行内容:
      
      
        

rem
      
      
         basedir的内容和datadir的内容;
      
      
        

rem
      
      
         如果不同,只将变量p的内容写入my.ini文件中
      
      
        if
      
       "!p!"== "%tag%" (


      
        echo
      
       !p!>>my.
      
        ini


      
      
        echo
      
       !basedir!>>my.
      
        ini


      
      
        echo
      
       !datadir!>>my.
      
        ini


      
      
        echo
      
       #开启查询缓存>>my.
      
        ini


      
      
        echo
      
       explicit_defaults_for_timestamp=true>>my.
      
        ini 


      
      )


      
        if
      
      
        not
      
       "!p!"== "%tag%" 
      
        echo
      
       !p!>>my.
      
        ini


      
      )


      
        rem
      
      
         TIMESTAMP with implicit DEFAULT value is deprecated
      
      
        

rem
      
      
         设置删除mysql服务的命令
      
      
        set
      
       uninstallcmd=.\bin\mysqld.
      
        exe remove mysql56


      
      
        rem
      
      
         调用删除命令
      
      
        call
      
      
         !uninstallcmd!




      
      
        rem
      
      
         设置安装mysql服务的命令
      
      
        set
      
       installcmd=.\bin\mysqld.
      
        exe -install mysql56




      
      
        rem
      
      
         调用安装命令
      
      
        call
      
      
         !installcmd!




      
      
        rem
      
      
         启动mysql服务
      
      
        net
      
      
        start
      
      
         mysql56




      
      
        rem
      
      
         调用update.sql文件中的sql语句,将mysql的远程访问方式打开,以备远程访问服务器;
      
      
        

rem
      
      
         同时,将mysql的密码更改,本批处理命令将mysql密码更改为root
      
      

.\bin\mysql -u root <.\update.
      
        sql




      
      
        rem
      
      
         重启mysql服务
      
      
        net
      
      
         stop mysql56


      
      
        net
      
      
        start
      
      
         mysql56


      
      
        pause
      
    

 


(5)运行service install.bat文件,完成mysql的环境配置,此时就可以通过程序对mysql服务进行调用了。

注意:此时mysql的root用户的密码已被更改为“root”,并允许用户远程访问mysql。

批处理命令篇--配置免安装mysql 5.6.22, 以及1067错误的一个解决方法


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论