主服务器必须打开开二进制日志.
主要是修改配置文件 , 一般在 linux 下安装的 mysql 配置文件是 my.cnf, 在 windwos 下是 my.ini,
修改主服务器配置文件
server-id=1
log-bin= 二进制文件的位置 #主服务器需打开二进制日志(5.6之前的版本)
log_bin=二进制文件的位置(5.7之后的版本)
binlog-do-db=demo #需要同步的数据库
#binlog-ignore-db= #需要忽略的数据库
主服务器创建一用户,该用户必须有 REPLICATION SLAVE 权限
配置从服务器
server-id = 2
replicate-do-db=demo
注意:在5.7及以上版本如果克隆了服务器 mysql的uuid是相同的 需要进入/data/mysql/下删除或者重命名auto.cnf文件然后重启mysql服务器 (目录/data/mysql/根据自己的安装情况而定)
5.7修改密码说明
1.原mysql数据库中的user表中的Password字段变为authentication_string密码加密方式依然采用Password()函数
2.修改密码后重新进入mysql命令行下需要执行set Password=Password(‘密码’)
忘记密码需要停止mysql 然后进入mysql安装目录下的bin目录执行./mysqld_safe –skip-grant-tables & 调过密码认证 然后可以使用空密码登录
如果从服务器链接主服务器错误 先执行stop slave;然后再reset slave;重置配置
进入入命令行执行命令
change master to master_host=' 主服务器地址 ', master_user=' 用户名 ', master_password=' 密码 ',
master_port= 端口号 ,MASTER_CONNECT_RETRY=10;
例如:
change master to master_host='192.168.16.6',
master_user='slave',master_password='123456',master_port=3306,master_connect_retry=10;
再执行 start slave;
停止mysql主服务器和从服务器
先启动主服务器 然后再启动从服务器
在从服务器输入命令
show slave status\G;
查看状态:
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.16.6
Master_User: slave
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 903
Relay_Log_File: relaylog.000004
.........
在主服务器上建立数据库数据表后查看从服务器,看是否配置成功
撤销配置:
进入命令行执行 stop slave; 再执行reset slave;即可