mysql 主从复制

配置两台mysql服务器

主机: 192.168.139.154 

从机: 192.168.80.153

如果复制多个数据库,重复设置这个选项即可:

binlog-ignore-db=db1

replicate-do-db=db2

创建用户(在主库上创建):
GRANT REPLICATION SLAVE,FILE ON *.* TO 'master'@'192.168.139.153' IDENTIFIED BY "1";
flush privileges;
master:从库可以访问的账户
1:从库可以访问的密码
192.168.139.153:从库的ip

更改主机配置    # vi /etc/my.cnf

在[mysqld]下添加如下配置

/etc/my.cnf:
[mysqld]
log-bin=/var/lib/mysql/binlog
#主机id不能重复
server-id=1
#要同步的数据库
binlog-do-db = cmdb

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

设置不同步的数据库(可选择):

binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

#退出重启mysql
service mysqld restart

从库:
/etc/my.cnf:
[mysqld]
#保证不重复
server-id=2
#要同步的数据库
replicate-do-db=cmdb


#mysql5.5+版本主从复制不支持这些变量,需要在从库上用命令来设置:
#后面两个参数的值与主库保持一致(在主机上show master 查看)
CHANGE MASTER TO MASTER_HOST="192.168.139.154",MASTER_PORT=3306,MASTER_USER="master",MASTER_PASSWORD="1",MASTER_LOG_FILE="binlog.000001",MASTER_LOG_POS=3194;
flush privileges;
#开启主从
start slave;

#查看主从配置信息

show slave statusG;

 则成功

最后在主库和从库新建数据库cmdb(表结构数据得一致)

在主库新建表 观察从库同步信息

=========================================(可选)

SHOW VARIABLES LIKE 'server_id';查看配置文件中设置的id

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 0     |
+---------------+-------+

发现server_id没变

既然参数文件不生效,就试试在数据库命令里面设置:

 SET GLOBAL server_id=136;

slave start

query ok 主从配置成功

 从数据库中数据随着主库数据变化而变化

原文地址:https://www.cnblogs.com/coderdxj/p/6666524.html