一、首先读写分离呢 一般的结构(1主(master) 2从(slave))
数据库的读写分离结构
读写分离的原理:就是主服务器每当新增数据或者删除数据,都会有二进制日志去记录这些操作,然后从数据库就根据日志来自动执行相同的动作,这样就达到从数据会自动同步主数据库的数据。
二、读写分离配置(1主2从)---说明:我是先做好,后面才补上博客的
1、首先,先去服务里面停止掉mysql57(3306端口)(在服务上右键停止就可以了).mysql3307 mysql3308暂时忽略(后面讲到)
服务列表
2.接下来找到你的mysql57(3306端口)安装目录 例图 我自己的安装目录
mysql的安装目录
3.将上面的文件夹复制2份到其它地方去,改名后面加上 3307 3308(命名只是为了区分)
复制2份到其它地方
4、接下来进入到3307的文件夹,将my-default.ini这个文件 重命名为my.ini
重命名为my.ini
5、接下来我们要在当前文件夹新增data文件夹,进行任何操作最好先停止掉mysql的服务
新增data文件夹
6、然后我们去找到mysql57(3306端口)的data文件,将里面的东西可以全部拷贝到3307 data文件夹里面去
3306端口的数据库
三、开始文件里面的配置
1、首先我们找到mysql57(3306端口)的文件配置
3306端口的my.ini文件
如图,这是3306端口的配置文件,我们需要在上面加上log-bin=mysql-bin 开启二进制日志, binlog-do-db=你想同步的数据库
server-id=1
2、接下来配置3307数据库的文件配置
3307端口的配置文件
这是3307的配置文件,上面的replicate-do-db=你想要同步的数据库
3、配置完成后 接下来我们需要将3307加入到服务中
cmd控制台
首先进入到3307的bin目录下,然后输入 mysql -install mysql3307(或者是mysqld -install mysql3307)(这是自定义服务的名字) ,我们可以启动3307服务,然后用数据库工具连接
3307服务
四、最后一步 数据库里面配置
1.
打开数据库工具连接上主数据库相当于我连接的 localhost(3306端口) mysql-slave-3307(从数据库),
然后在localhost数据库里面查询 show Master status
就会出现主数据库的信息 file position要记住
2.在3307从数据库上新建查询输入
change master to master_host='127.0.0.1', master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=154;
3307数据库执行脚本
上面的master_user=数据库账号 master_password=数据库密码 master_log_file=上一步骤查询出来的file master_log_pos=上步骤查询出来的position
3.最后执行 start slave 开启主从复制(3308从数据库也是按照3307得到步骤一样配置)