Mysql集群讲解(四)
一主多从环境搭建:
A:环境配置(#号后内容记得删除)
配置主从MySQL配置文件my.cnf
主(3307)里面加入
log-bin=mysql-bin #表示启用二进制日志
server-id=3307 #表示server编号,编号要唯一
从(3308)里面加入
server-id=3308 #表示server编号,编号要唯一
从(3309)里面加入
server-id=3309 #表示server编号,编号要唯一
从(3310)里面加入
server-id=3310 #表示server编号,编号要唯一
这里把3307数据库当作主
文件如下:
[client]
port = 3307
socket = /usr/local/mysql-5.7.18/data/3307/mysql.sock
default-character-set=utf8
[mysqld]
port = 3307
socket = /usr/local/mysql-5.7.18/data/3307/mysql.sock
datadir = /usr/local/mysql-5.7.18/data/3307
log-error = /usr/local/mysql-5.7.18/data/3307/error.log
pid-file = /usr/local/mysql-5.7.18/data/3307/mysql.pid
character-set-server=utf8
lower_case_table_names=1
autocommit = 1
### Master Slave ###
log-bin=mysql-bin
server-id=3307
其余3308 3309 3310作为从配置类似如下
[client]
port = 3308
socket = /usr/local/mysql-5.7.18/data/3308/mysql.sock
default-character-set=utf8
[mysqld]
port = 3308
socket = /usr/local/mysql-5.7.18/data/3308/mysql.sock
datadir = /usr/local/mysql-5.7.18/data/3308
log-error = /usr/local/mysql-5.7.18/data/3308/error.log
pid-file = /usr/local/mysql-5.7.18/data/3308/mysql.pid
character-set-server=utf8
lower_case_table_names=1
autocommit = 1
server-id=3308
B:服务启动:
进入/usr/local/mysql-5.7.18/bin目录,重启四个MySQL服务,启动时指定配置文件启动:
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.18/data/3307/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.18/data/3308/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.18/data/3309/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.18/data/3310/my.cnf &
C:设置主从关系:
1、在主服务器上创建复制数据的账号并授权:
grant replication slave on *.* to ‘copy‘@‘%‘ identified by ‘123456‘;
2、建议重置一下主服务状态,执行命令:reset master;
3、在主服务器上执行命令,获取主服务器二进制binlog坐标(二进制文件名和坐标值在后面会用到):
show master status;
在从服务器上执行命令,设置从服务器的master
4、(别小看这两个命令 如果中间配置错误 可以用这个命令清除配置)
建议配置时执行:
stop slave;
reset slave;
5、(端口号用自己的:如果配置出错 请执行4操作)
change master to master_host=‘192.168.91.135‘,master_user=‘copy‘,
master_port=3307,master_password=‘123456‘,
master_log_file=‘mysql-bin.000001‘,master_log_pos=154;
6、start slave; 启动操作
D:主从验证:
检查从服务器复制功能状态
mysql> show slave status \G
Slave_IO_Running和Slave_SQL_Running为YES,就是正常状态。
在主服务器上创建数据库、表、数据,然后在从服务器上查看是否已经复制
以上操作过程显示正常,则主从服务器配置完成;