Windows下一个MySQL开多个实例

希望在一个空的MySQL数据库中测试恢复一台服务器的完整数据库备份,因为本地数据库是开发用的,不希望破坏开发数据,所以要多开一个实例。我看到网上有说再安装一个MySQL,或者复制出一份来,还有的需要搞注册表。这些做法可能也都能行得通,但我始终不太满意,自己研究了一番发现有更简单的办法,过程存档一下:

一 新建一个my.ini

可以复制原来的my.ini,另起一个名字,比如叫my-test.ini,然后修改这个配置文件,在[mysqld]配置段中增加一句:

datadir="E:/tmp/mysql/"

然后搜索3306,改成3307,这个是新实例使用的端口号。

这个路径随意设置,注意路径中的斜杠是linux式的,不是windows的反斜杠。

二 新建数据目录

要保证它可写,然后创建mysql默认数据库,因为windows下没有mysqlinstalldb这样的初始化脚本,最简单的办法就是从其他MySQL实例的数据库目录中拷贝mysql目录到新的数据目录中。如果没有默认数据库这一步的话,会提示1067错误。

三 在cmd下执行下述命令:

mysqld install mysql-test --defaults-file="Z:\my-test.ini"

其中,mysql-test是要建立的windows服务名,Z:\my-test.ini是我举例的配置文件名。

顺利的话,会提示“Service successfully installed.”

四 创建的windows服务默认会开机自动启动,但如果不想重启马上就要使用,就到“计算机管理”>“服务和应用程序”>“服务”中找到mysql-test,右键菜单中选择“启动”即可。

五 测试确认,在mysql客户端的参数中加上-P=3307就可以连接到新建的实例了(注意-P是大写P)。

mysql -P 3307 -uroot -p

登录进去之后,执行这一句可以看到当前的数据库目录:

show variables like '%datadir%';

验证新的实例确实已经运行起来了。

 评论
 发表评论
姓   名: