因为最近刚刚分到项目组,需要对数据库进行读写分离的操作,把自己的一些经验分享一下,供大家参考
为什么要进行读写分离,这个问题大家可以百度。
首先将数据库的服务关闭,我的电脑右键-管理-服务和应用程序
在没有配置之前是只有一个的就是MySQL57 将其关闭
datadir = D:/Mysql/MySQL Server 5.7-3307\data 在MySQL Server 5.7-3307目录下新建目录data, mysql初始化无法帮我们创建 ,需要手动创建
port = 3307 修改端口号 默认是3306 修改为不同的
server_id = 2 同上 主库默认是1 修改为不同的
然后 打开自己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就配置成功了