在Windows下安装多个Mysql[主从数据库
发布时间: 2012-11-10 10:48:50 作者: rapoo
在Windows上安装多个Mysql[主从数据库同步数据]
主从数据库数据同步,可以使用从数据库来实时备份主数据库,当主数据库被破坏,可以马上启用从数据库。
一、从C盘拷贝MYSQL到D盘,命名为MYSQL2把"C:\MySQL" 修改为 "D:\MySQL2"
修改配置文件my.ini[client]port=3307[mysqld]port=3307basedir="D:/MYSQL2/"datadir="D:/MYSQL2/Data/"
安装一个新的MYSQL数据库,服务命名为MySQL2在cmd命令行模式下D:\MySQL2\bin>mysqld-nt install MySQL2 ?--defaults-file="D:\MySQL2\my.ini"
好了,我们来到服务,启动MySQL2,当然也可以命令提示符来停止与启动net stop MySQL2net start MySQL2
//====小技巧===//1、如要修改MySQL2服务路径:运行regedit,进入注册表?HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL2修改ImagePath的数据D:\MYSQL2\bin\mysqld-nt --defaults-file=D:\MYSQL2\my.ini MySQL2
2、如要删除服务sc delete MySQL2
3、如果提示1067错误,请检查一下my.ini文件,basedir="D:/MYSQL2/",datadir="D:/MYSQL2/Data/"里面的路径是否写错了。或检查一下注册表MySQL2的ImagePath数据,--defaults-file="D:\MySQL2\my.ini"里面的路径是否写错了;
?二、主从数据库同步示例主数据库的配置(my.ini)[mysqld]server-id = 1log-bin=mysqld-binreplicate-do-db=test
port=3306从数据库的配置(my.ini)[mysqld]server-id = 2log-bin=mysqld-binmaster-host = 127.0.0.1master-user = slavemaster-password = 123master-port = 3306master-connect-retry=5replicate-do-db=test #需要同步的数据库,很关键log-slave-updates
port=3307配置好了之后net stop MySQLnet start MySQLnet stop MySQL2net start MySQL2重启即可,主数据的操作会自动更新到从数据库中。需要注意点是,从数据库的数据结构要保持和主数据库一致,不然不能同步主数据库的数据。
//====小技巧===//MYSQL2的命令提示符,可以通过设置环境变量来实现,修改mysql.exe为mysql2.exe即可//锁定所有表(不需要停止MYSQL服务器,可以有读的功能,保持网站继续正常运行)FLUSH TABLES WITH READ LOCK;//解除锁定UNLOCK TABLES;
//显示主数据库状态SHOW MASTER STATUS \G//显示从数据库状态SHOW SLAVE STATUS \G//设定不同步的数据库,这些库的修改不会记录到日志(可以添加多行)binlog-ignore-db = test//设置同步的数据库(设置“从数据库”的配置文件,如果主的MYSQL数据库很多,而从的MYSQL数据库只有一个数据库,操作其他数据库的时候就会报错,从而终止从数据库不能实时的更新)replicate-do-db=test//新建一个专门备份的用户(Repl_slave_priv: Y)GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123';FLUSH PRIVILEGES;//在slave上执行 "LOAD TABLE FROM MASTER" 或 "LOAD DATA FROM MASTER"(Select_priv: Y,File_priv: Y,Repl_slave_priv: Y)GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123';FLUSH PRIVILEGES;