WINDOWS下配置MYSQL多实例和主备同步
前言
在自己机器上完mycat,准备玩点高级的,所以先要在同一个windows下安装多个实例,并设置主备的同步。废话不多说,先一步步安装下来。
安装
本机已经安装了一个mysql,采用的是默认安装。我的版本是5.7。 MYSQL的程序目录是C:Program FilesMySQLMySQL Server 5.7 。配置文件目录是c:/ProgramData/MySQL/MySQL Server 5.7/。下面是安装另一个实例的步骤
1.拷贝程序目录。将C:Program FilesMySQLMySQL Server 5.7 拷贝至E:AnotherMySql2MySQL Server 5.7
2.拷贝配置文件,将c:/ProgramData/MySQL/MySQL Server 5.7/下的my.ini 拷贝至*E:AnotherMySql2MySQL Server 5.7*,并在目录下新建data目录
3.配置新实例的my.ini 。主要是端口和目录。
[client] # pipe # socket=0.0 port=3308 # The TCP/IP Port the MySQL Server will listen on port=3308 # Path to installation directory. All paths are usually resolved relative to this. basedir="E:\AnotherMysql2\MySQL Server 5.7\" # Path to the database root datadir=E:\AnotherMysql2\MySQL Server 5.7\data server-id=10
4.打开CMD,在新的实例目录bin下运行
注册服务:mysqld install MySQL4 --defaults-file="E:AnotherMysql2MySQL Server 5.7my.ini"
执行net start MySQL。如果失败就先清空data目录,再执行mysqld --initialize-insecure --user=MySQL4
再试试启动。
主备同步
Master上的配置my.ini
[mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
Slave上配置my.ini
[mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=2 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
重启主从数据库。登录master,运行一下命令, 表示所有客户端都可能连,只要帐号,密码正确
mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';
接着执行show master status,记录file和position。
登录slave,运行以下命令,设置该从实例的主服务器,
change master to master_host='127.0.0.1',master_port=3306,master_user='mysync',master_password='q123456', master_log_file='mysql-bin.000004',master_log_pos=308;
接着运行start slave,启动同步。运行show slave statusG 。 注意Slave_IO_Running和Slave_SQL_Running如果其中之一不是YES,就是同步失败。具体错误可以从Last_SQL_Error中获得。
注意:MYSQL只能进行整个数据库实例的同步,新建数据库,新建表,增删改等操作都可以进行同步。