环境:
master:192.168.83.157
slave: 192.168.83.158
主master:
1.创建数据库
create database demo;
2.修改配置文件/etc/my.cof:
[mysqld]
log-bin=/var/log/mysql/mysql--bin #日志文件名称
binlog-format=ROW #二进制日志格式
server-id=157 #各个服务器的id要求不一样,一般用主机IP地址最后几位
2.创建日志目录并授权
mkdir /var/log/mysql/
chown mysql.mysql /var/log/mysql
3.配置从服务器登录主服务器的账号授权
grant replication slave on *.* to 'root'@'192.168.83.153 ' identified by 'qwe123!@#MJ';
4.重启主服务器
systemctl restart mysqld.service
#查看状态,如下图
mysql> show master status;
5.授权远程登录
grant all privileges on *.* to 'root'@'%' identified by 'qwe123!@#MJ' with grant option;
slave从:
如果master中已经存在数据,那么先对master中的数据进行备份,在slave中进行还原具体步骤如下
#1.在master中进行备份,并将备份发送到slave
mysqldump -uroot -p 数据库名称[demo] > /root/备份文件名称[demo.sql]
#2.将demo.sql发送到slave
scp /root/demo.sql root@192.168.83.158:/root/
#3.在slave中进行还原
mysql>source demo.sql;
1.修改配置文件 my.cnf
binlog-format=ROW
server-id=158
2.重启
systemctl restart mysqld.service
3.登录数据库,
mysql -uroot -p
mysql>change master to master_host='192.168.83.153',master_user='root',master_password='qwe123!@#MJ',master_port=3306,master_log_file='锚点一',master_log_pos=锚点二;
#锚点一:在master服务器使用show master status查看,看上面的图中File字段
#锚点二:同上,偏移量,上图中Position字段
#启动线程
mysql> start slave;
#查看状态
show slave status\G;
这里主要看标红的字段, 信息和之前配置的是否相同。
Slave_IO_Running和 Slave_SQL_Running两个线程都必须是yes,就表示成功。
在这个过程中我所遇到的问题,https://www.jianshu.com/writer#/notebooks/47777866/notes/82207620