windows本地实验搭建主库分库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/EvilSlyvanas/article/details/80318371

首先,我们需要在本地装两个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;此时在主从库插入数据和做相关的操作,从库都会执行一次。







阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页