首先,我们需要在本地装两个mysql的服务。
1.正常安装第一个mysql(安装步骤省略)
2.在控制面板里停止第一个mysql服务
3.然后将Mysql的所有相关的东西备份到其他的磁盘。
如:D:\Mysql\MySQL Server 5.6 ------> E:\Mysql\MySQL Server 5.6
D:\MysqlData -------> E:\MysqlData
我的my.ini放在MysqlData的根目录下。
修改E:\MysqlData下的my.ini文件。将[mysqld]下的port的端口修改,如:3307,
将basedir="D:\Mysql\MySQL Server 5.6\" 修改成 basedir="E:\Mysql\MySQL Server 5.6\"
将datadir="D:\MysqlData \" 修改成 datadir="E:\MysqlData \"
4.创建服务
原本的服务是:
mysqld install MySQL5.6-2 --defaults-file="E:\MysqlData\my.ini"(创建服务并指定其配置文件---->my.ini文件)
5.修改注册表
cmd命令行种运行regedit命令打开注册表,在HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services中找到刚创建的服务,将ImagePath修改成如下:(注意注意:defaults是有s的,之前少打这个s花了挺长时间才发现)
"E:\Mysql\MySQL Server 5.6\bin\mysqld" --defaults-file=E:\MySqlData\my.ini MySQL5.6-2
现在我们来搭建主从复制,如下:
1.在搭建好两个mysql服务之后,将其中一个做为主库,一个主为从库。
修改主库配置文件:
[mysqld]
server-id = 1
binlog-do-db=springbootdb#要同步的数据库
#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的
log-bin=mysql-bin #要生成的二进制日记文件名称
修改从库配置文件:
[mysqld]
server-id = 2
log-bin= mysql-bin
replicate-do-db=springbootdb
2.修改权限,创建一个用户,让其拥有file和replication权限,我直接就先用root用户了,他拥有所有的权限。这里我用root来展示。
3.先保持两个数据库的状态一致,由于我刚才是直接复制过去的,所有状态是一致的。
5.在主数据库里面运行show master status;记下file和position字段对应的参数。

6.在从库指定它的mster
mysql> change master to master_host='localhost',master_port=3306,master_user='root',master_password='hezijian',
master_log_file='mysql-bin.000002',master_log_pos=120;(这里要根据刚才master status中的数据填写)
7.修改uuid,因为我是直接拷贝的数据库,所有在E:\MysqlData\data中的auto.cnf文件的uuid会一样,会导致Slave_IO_Running的数据为no,直接把这个文件删除,然后重新服务,就会自动创建一个不同uuid的文件。这里的no的原因可能会有很多,可以从网上查找其他原因,如主库的用户是否有replication和file的权限?是否能连接的上主库?等原因。由于我是root用户,又是本地所以不会考虑。还有一点就是master_host='127.0.0.1'和master_host='localhost'是有区别的,并不等同于一个东西。至于Slave_SQL_Running为no的请自行百度原因,一般就是从库插入了数据,和主库的数据不一致所导致。
8.开启主从复制
在从库中运行:start slave;此时在主从库插入数据和做相关的操作,从库都会执行一次。

3701

被折叠的 条评论
为什么被折叠?



