mysql读写分离配置

因为最近刚刚分到项目组,需要对数据库进行读写分离的操作,把自己的一些经验分享一下,供大家参考

为什么要进行读写分离,这个问题大家可以百度。

首先将数据库的服务关闭,我的电脑右键-管理-服务和应用程序mysql读写分离配置_第1张图片

在没有配置之前是只有一个的就是MySQL57 将其关闭

然后找到你的数据库安装目录:我的是在C:\Program Files\MySQL\MySQL Server 5.7  因为我做的是一主两从的配置,所以讲这个目录copy了两份,放置的目录没有要求,我放置在D:\Mysql下面 完整目录为 D:\Mysql\MySQL Server 5.7-3307和D:\Mysql\MySQL Server 5.7-3308 将目录的名字做了修改方便区分
修改copy来的配置文件my-default的名字为my 然后打开my配置文件 将basedir,datadir,port,server_id的注解打开
basedir = D:/Mysql/MySQL Server 5.7-3307           修改称为自己的目录地址 我是直接放在3307这个目录下 路径需要反斜杠
datadir = D:/Mysql/MySQL Server 5.7-3307\data   在MySQL Server 5.7-3307目录下新建目录data, mysql初始化无法帮我们创建 ,需要手动创建
port = 3307       修改端口号 默认是3306 修改为不同的 
server_id = 2   同上  主库默认是1  修改为不同的
每一个数据库的端口号和server_id都不一样 另一个需要修改的位置一样  以下都不在声明 以一个配置为主

此时配置结束 启动数据库
管理员身份运行cmd 进入  D:\Mysql\MySQL Server 5.7-3307\bin 自己的bin目录下面 
运行    mysqld -initialize -insecure -user=mysql    此命令会初始化mysql 此时data目录下会有一些文件
这个data文件夹是有问题的有的文件夹没有生成如:mysql文件夹  找到自己的mysql57的数据所在 我的是C:\ProgramData\MySQL\MySQL Server 5.7  将下面的data文件夹copy过来替换自己刚刚生成的data文件夹  ProgramData   这个目录应该是都有的  其他路径可能不一样 需要自己去需找一下
在运行安装命令    mysqld -install  3307    3307为此mysql在服务中的名称 必须唯一
然后就可以安装成功  之后到服务中去启动 以能启动为准
打开自己的图形化界面 连接自己的刚刚设置端口的数据库  账号密码和原来mysql57的一样
此时完成了多数据库的配置  进入正题 mysql的读写分离
mysql的读写分离有两种方案,一种是sql语句的同步 另一种是logbin日志的同步,一般都是选择logbin日志的同步
将自己MySQL的服务都关闭 
打开自己刚刚找到的C:\ProgramData\MySQL\MySQL Server 5.7文件夹 打开里面的my 配置文件
找到log-bin然后修改
log-bin=mysql-bin    添加   binlog-do-db=login  这个是你需要同步的数据库  login是我自己的数据库 自己修改

然后 打开自己D:\Mysql\MySQL Server 5.7-3307  刚刚copy的文件 也是从数据库 打开my配置文件

mysqld下面 添加  log_bin=mysql-bin      replicate_do_db=login (或者log-bin=mysql-bin      replicate-do-db=login 这个根据配置文件注解(# log_bin)而来,有的“-”不起作用,而有的是“_”。看注解)   login 选择需要同步的数据库

此时还有最大的一个坑 我就是被这个坑 坑了好长时间

因为刚刚的data文件是我们copy过来的  里面的auto.cnf文件里面的uuid都是一样  我们需要改变从也就是3307的uuid 随便修改 与主不一样的就可以 必须修改不然主从有问题

关闭配置文件 启动服务  以上修改配置文件的时候都需要关闭服务

打开视图化界面 将自己配置的数据库端口都连接起来

在master 也就是主服务器 查询  SHOW MASTER STATUS

将查询结果 file position 的结果记录下来 

然后打开slave也就从服务器的新建查询 

主库的ip            主库端口号             账号           密码         刚刚记录的file结果

输入 CHANGE MASTER to master_host='127.0.0.1' ,master_port=3306,master_user='root',master_password='root',master_log_file='mysql-

bin.000008',master_log_pos=154       刚刚记录的position 结果


运行 然后在输入  START SLAVE

最后 输入查看   SHOW SLAVE STATUS

看查询结果 IO_Running  sqlRunning 为yes就配置成功了

你可能感兴趣的:(数据库)