1.问题来源
一台机子上要运行mysql-5.5.11-win32和mysql-5.0.27-win32两个版本的mysql,其中5.5.11安装成windows服务,默认情况下,mysql运行于3306端口,因此需要做适当配置才能让两个版本同时运行。
2.解决步骤
1)软件准备
mysql-5.5.11-win32 和mysql-5.0.27-win32的zip版,不需要安装的。直接解压到硬盘,这里以C盘为例,解压后为c:\mysql-5.5.11-win32,c:\mysql-5.0.27-win32。
2)配置
(1)、mysql-5.0.27-win32
将c:\mysql-5.0.27-win32\my-medium.ini复制一份,改名为my.ini。打开my.ini,将两处port=3306改为port=3308,
在myisam_sort_buffer_size = 8M这一行下面添加
#【*】注意这里路径是划线可以是/或\或//或\\都可以 #Path to installation directory. All paths are usually resolved relative to this. basedir=C:/mysql-5.0.27-win32/ #Path to the database root datadir=C:/mysql-5.0.27-win32/Data/
在C:/mysql-5.0.27-win32/下新建一个批处理文件install.cmd,内容如下:
【*】注意参数前面有两个横线 eg: --install
bin\mysqld-nt --install mysql50 --defaults-file=”c:\mysql-5.0.27-win32\my.ini”
再建一个uninstall.cmd,内容如下:
bin\mysqld-nt --remove mysql50 --defaults-file=”c:\mysql-5.0.27-win32\my.ini”
好了,双击运行install.cmd。
菜单 开始–>运行…,输入services.msc
可以看到有一个叫mysql50的服务,点右键,启动它。
mysql-5.0.27-win32服务安装完毕。
卸载服务先通过services.msc停止,再运行uninstall.cmd
(2)、mysql-5.5.11-win32
(同理上面的方法安装,这里再啰嗦一次)
将c:\mysql-5.5.11-win32\my-medium.ini复制一份,改名为my.ini。这个版本将使用缺省端口,因此不修改port。
在myisam_sort_buffer_size = 8M这一行下面添加
#Path to installation directory. All paths are usually resolved relative to this. basedir=C:/mysql-5.5.11-win32/ #Path to the database root datadir=C:/mysql-5.5.11-win32/Data/
在C:/mysql-5.5.11-win32/下新建一个批处理文件start.cmd,内容如下:
start bin\mysqld-nt --defaults-file=”my.ini”
运行即可启动mysql-5.5.11-win32。
再建一个stop.cmd,内容如下,
bin\mysqladmin shutdown
运行可以停止mysql,如果不是运行在缺省端口,则要使用port参数,参考下面的命令
bin\mysqladmin shutdown –port=3306
3.登录mysql测试
登录mysql5.0.27 :在cmd命令行中切换到c:\mysql-5.0.27-win32\bin下,输入 mysql -uroot -p -P3308
则显示登录成功(注意上面的命令中的两个p的大小写不同,后一个p是大写的,意思是port)
登录mysql5.5.11 :在cmd命令行中切换到c:\mysql-5.5.11-win32\bin下,输入输入 mysql -uroot -p 即可
4.有关说明
1)以上在win2000上测试通过。
2)启动和停止服务也可以不用services.msc,直接输入net start mysql50和net stop mysql50也行。
3)如果要改端口,修改my.ini,将mysql停止,重启即可。
4) 如果不指定my.ini,mysql搜索配置的顺序是c:\winnt\my.ini,c:\winnt\my.cnf,c:\my.ini,c:\ my.cnf。如果找不到则使用默认配置在3306启动。奇怪的是安装服务时如果不指定,启动时会使用basedir里的my.ini,而不安装成服务直接启动,则不搜索当前目录,只搜索缺省位置。
5)如果使用过安装版的mysql,安装时可能会建立c:\winnt\my.ini,最好先将这一文件删除。
6)一般应能正常启动了。 如果遇到提示1067错误,请删除你的mysql\DATA文件里的LOG文件,再试。 如果还是提示1067错误,请检查一下--defaults-file="c:\mysql-5.0.27-win32\my.ini"里面的路径是否写错了; 如果还是提示1067错误。
附录脚本:这些脚本放在c:\mysql-5.0.27-win32目录下
安装服务脚本install.cmd
@echo off @ echo "install service ……" @bin\mysqld --install mysql50 --defaults-file="c:\mysql-5.0.27-win32\my.ini" @net start mysql50 @pause && exit
启动服务脚本startup.cmd
@echo off @ echo "startup ……" @net start mysql50 @pause && exit
停止服务脚本stop.cmd
@echo off @ echo "stop ……" @net stop mysql50 @pause && exit
卸载服务脚本 uninstall.cmd
@echo off @ echo "remove service ……" @ bin\mysqld --remove mysql50 --defaults-file="c:\mysql-5.0.27-win32\my.ini" @ pause && exit