主数据库my.ini配置
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
binlog-do-db=test
#server-id 服务器唯一标识。
#log_bin 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。
#binlog_do_db 指定记录二进制日志的数据库,即需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可。
创建一个用户,给从数据库使用
create user 'slave'@'localhost' identified by '123456';
给数据库赋权;按需求自己赋权,赋权成功后,刷新用户权限
FLUSH PRIVILEGES;
重启mysql数据库
复制刚才的数据库搭建从数据库
注意:要删除data下面的auto.cnf。不然会报错
从数据库my.ini配置,配置完成后重启
server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
#server-id 服务器唯一标识,如果有多个从服务器,每个服务器的server-id不能重复,跟IP一样是唯一标识,如果你没设置server-id或者设置为0,则从服务器不会连接到主服务器。
#relay-log 启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉了,将此从服务器作为其他从服务器的主服务器。
#replicate-do-db 指定同步的数据库,如果复制多个数据库,重复设置这个选项即可。若在master端不指定binlog-do-db,则在slave端可用replication-do-db来过滤。
#replicate-ignore-db 不需要同步的数据库,如果有多个数据库,重复设置这个选项即可。
先停止slave,从数据库执行
stop slave
连接主数据库,先查看主数据库的状态,主数据库执行sql
show master status
在从数据库执行sql,MASTER_LOG_FILE=主数据File,MASTER_LOG_POS=主数据库Postition;
change MASTER to MASTER_HOST='localhost',MASTER_PORT=3306,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='master-bin.000006',MASTER_LOG_POS=1600;
成功后从数据库执行sql
start slave
然后查看状态
show slave status
这两项都为YES表示成功。
slave_io_Running 为no使用show slave status查看错误,