就是关于basedir与datadir设置为相对路径,网上找了下,都说是不能设置为相对路径的。
那直接不能设置,那就只能间接的去设置的了。
我的想法是用批处理去改basedir和datadir的值,理论上应该是可行吧?
在my.ini中,我们先把值设置如下唯一的标记,如:
basedir=basedirDir
datadir=datadirDir若是用程序的方法,很容易就可以把basedirDir和datadirDir改为需要的值,但我若想用批处理来解决,该如何写呢?
这里有高人做过吗?希望能指点一二,多谢。我的思路如下,只是对dos命令不是很熟,具体不知道怎么写。
在my.ini的同级目录,新建个bat文件,如:modifyMyINIDir.bat
内容大致是这样的:
1.读取my.ini的内容放在一个临时的变量中,如tmpINI
2.获取当前的路径,可用:set CURRENT_DIR=%cd%
3.类似实现:tmpINI = tmpINI.replace("basedirDir", CURRENT_DIR)
和tmpINI = tmpINI.replace("datadirDir", CURRENT_DIR + "/data")的方法
4.最后再把得到新的tmpINI写入my.ini中,即替换旧的内容,即大功靠成。其实思路应该不难,只是具体怎么写呢?还有就是,dos命令,能完成这样复杂的功能不?
有兴趣的同学,可以发挥下吧。
那直接不能设置,那就只能间接的去设置的了。
我的想法是用批处理去改basedir和datadir的值,理论上应该是可行吧?
在my.ini中,我们先把值设置如下唯一的标记,如:
basedir=basedirDir
datadir=datadirDir若是用程序的方法,很容易就可以把basedirDir和datadirDir改为需要的值,但我若想用批处理来解决,该如何写呢?
这里有高人做过吗?希望能指点一二,多谢。我的思路如下,只是对dos命令不是很熟,具体不知道怎么写。
在my.ini的同级目录,新建个bat文件,如:modifyMyINIDir.bat
内容大致是这样的:
1.读取my.ini的内容放在一个临时的变量中,如tmpINI
2.获取当前的路径,可用:set CURRENT_DIR=%cd%
3.类似实现:tmpINI = tmpINI.replace("basedirDir", CURRENT_DIR)
和tmpINI = tmpINI.replace("datadirDir", CURRENT_DIR + "/data")的方法
4.最后再把得到新的tmpINI写入my.ini中,即替换旧的内容,即大功靠成。其实思路应该不难,只是具体怎么写呢?还有就是,dos命令,能完成这样复杂的功能不?
有兴趣的同学,可以发挥下吧。
但是如果是在WINDOWS中,你可以通过VBS脚本来实现对文件的操作。
也碰到用户连D盘都没有了,那么再修改MY.INI。
target_dir为你要发布的目录。
在bat里头,使用echo命令生成一个新的可用的my.ini文件,到target_dir\bin里头
最末尾,生成一个manual方式启动的mysql服务即可。
echo port = 3306 >> c:\test\mysql\my.ini
ehco max_allowed_packet = 1M >> c:\test\mysql\my.ini
echo datadir = %CURRENT_DIR% >> c:\test\mysql\my.ini
....
[/code]
http://blog.csdn.net/iihero/archive/2010/05/15/5596401.aspx
我就是直接在打包软件中设置路径的,所以你爱装哪就装哪。