linux配置mysql主从同步
配置梳理
- 主数据库
开启二进制日志
设置唯一id
获取二进制文件名和位置
创建用于通信的账号 - 从数据库
设置唯一id
使用分配的账号读取主数据库的二进制日志
准备工作
主数据库:192.168.0.201
从数据库:192.168.0.202
主数据库配置
- 进入配置文件
vim /etc/my.cnf - 添加两行
log-bin=mysql-bin #开启二进制日志
server-id=201 #设置server-id,唯一值,标识主机 - 重启服务
service mysql restart - 创建账号密码
进入mysql
mysql -u root -p
创建用户(IP为可访问该master的IP,任意IP就写'%')
CREATE USER 'slave_userid'@'%' IDENTIFIED BY 'slave_pwd';
查看用户是否创建成功
select user,host from mysql.user;
分配权限(IP为可访问该 master的IP,任意IP就写'%')
GRANT REPLICATION SLAVE ON . TO 'slave_userid'@'%'; - 刷新权限
flush privileges; - 查看master状态,记录二进制文件名File和位置Position,后面配从库要用
show master status;
从数据库配置
- 进入配置文件
vim /etc/my.cnf - 添加一行
server-id=202 #设置server-id,唯一值,标识主机 - 重启服务
service mysql restart - 登录进入mysql,执行同步sql语句(主服务器名,用于主从的用户名,密码,二进制文件名,位置)
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='192.168.0.201',
MASTER_USER='slave_userid',
MASTER_PASSWORD='slave_pwd',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=755;
- 启动slave同步进程
start slave; - 查看slave状态,当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了
show slave status\G - 可以改数据验证同步,可以stop slave;执行看看效果
- 其他
不同步哪些数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
只同步哪些数据库,除此之外,其他不同步
binlog-do-db = game