mysql集群
为什么要做主从库分离?
怎么进行分离?
设置2个数据库,为主库从库,主库存储,从库查询
怎么设置?
在你原本的配置yml文件中主库的ip是多少,从库是多少,都要和数据库的ip 一致
先编辑文件
#cp /usr/share/mysql/my-default.cnf /etc/my.cnf,就是说将my-default.cnf这个文件移动到/etc/my.cnf下面,要在根目录底下执行
#vim /etc/my.cnf--编写这个文件
进入后可以看到my.cnf文件内容,不好辨认,所以增加:set nu(增加行号)
把光标放在第4行,然后对文件进行修改-插入( :+ i)esc就能退出编辑模式
这里每个服务器都要设置唯一的id
主从同步是通过二进制的日志文件来进行,故须开启MySQL的日志功能记录增删改,每次服务启动就会产生新的日志文件
存储所有master-bin.0000xx文件名
配置端口号,这个端口号就是自定义的,一般不要改端口号
#需要同步的数据库名,若同步多个数据库数据用逗号分隔继续追加;若没有本行则表示同步所有的数据库数据,第9行可标注
#不同步的数据库名,多个用逗号分割;ignore=忽略
如果你时间超过1s就是慢查询
第一个就是打开慢查询,第二个就是设置阀值
以上几句诗设置文件的内容,退出编辑模式并保存;esc :wq,或者:wq!
启动服务让配置生效
systemctl start mysqld 重启 or systemctl restart mysqld 启动
未启动就用启动mysql,如果未启动过就用重启
创建主从同步的帐户
#mysql -uroot -p123456@Yc(密码按照自己设置的)
mysql> GRANT REPLICATION SLAVE ON *.* to rep@'%' IDENTIFIED BY '123456@Yc';
mysql> flush privileges;
mysql> select host,user from mysql.user;当看到user是有rep代表设置成功
配置从库
也是一样,需要一个配置文件,然后在项目里启动文件
配置时需要更改【服务器id】并取消log配置,因为是从库,不需要给别人同步数据,所以取消log配置
A.从库my.conf配置同master服务器配置一样,但server-id=2,取消#binlog-ignore-db配置,保存退出
B.重启mysql让其配置生效:
systemctl start mysqld or systemctl restart mysqld
如何知道是否已经启动mysql
执行losf -i :3306,看到有mysql就执行重启,未看到就执行启动
然后在主库,输入showstatus查看主库状态
然后在从库,登录从库后执行
绑定失败
停掉slave即可
再执行一边,看到ok即可
检查
需要看到这2个yes