步骤
第一步:如果是虚拟机直接拷贝的话就要修改虚拟机的UUID和ip地址
修改uuid
vim /var/lib/mysql/auto.cnf
修改ip地址 命令
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络
service network restar
查看一下ip地址
ifconfig
ip:192.168.200.132 主
ip:192.168.200.133 从
ip:192.168.200.132 主机配置文件
命令: vim /etc/my.cnf
在主机添加配置数据
#id和从机的不能一样
server-id=1
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=infomation_schema
#你要同步的那个数据库
binlog-do-db=JoinTest
binlog_format=STATEMENT
从机配置文件 ( ip:192.168.200.133 从)
主从所有配置项都配置在[mysqld]节点下,且都是小写字母
[必须]从服务器唯一ID:server-id=2
[可选]启用中继日志:relay-log=mysql-relay
server-id=2
relay-log=mysql-relay
主机从机都要重启配置生效
systemctl restart mysqld
主机从机都要关闭防火墙
systemctl stop firewalld
在主机上建立帐户并授权slave
先登录mysql用户root
slave用户名,后面123456是用户的密码
```bash
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
查看用户是否创建
select user,host from mysql.user;
```bash
flush privileges;
给root用户授予远程访问权限
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;
查询master的状态:
show master status;
暂时先不操作主机
从机
登录从机mysql root用户
CHANGE MASTER TO MASTER_HOST=‘主机ip地址’,
MASTER_USER=‘X’,MASTER_PASSWORD=‘X’,
MASTER_LOG_FILE=‘mysql-bin.具体数字’,MASTER_LOG_POS=具体值;
执行
CHANGE MASTER TO MASTER_HOST='192.168.200.132',
MASTER_USER='slave',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000011',MASTER_LOG_POS=1015;
启动从机服务器复制功能
start slave;
查看
show slave status\G;
到这步就成功了
下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果出现:Slave_IO_Running:No
则可能的解决办法是:
1)停止stop slave; 再启动start slave;看是否能正常运行
2)两个服务器的防火墙是否关闭,是否互相能ping通
3)配置文件是否正确、是否重启了服务器
4)连接主机的语句是否正确
5) 可能是uuid 一致(master,slave uuid) vim /var/lib/mysql/auto.cnf 下更改uuid,重启服务
在主机创建一个表测试
20.3.8.如果停止从服务复制功能,重新配置主从
在从机上执行。功能说明:停止I/O 线程和SQL线程的操作。
mysql> stop slave;
在从机上执行。功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件。
mysql> reset slave;
在主机上执行。功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。
用于第一次进行搭建主从库时,进行主库binlog初始化工作;
mysql> reset master;