一直想自己搭建一个mysql主从复制的环境,今天终于付诸实践了。。。。。。。。。
本文写的比较简单,如果有疑问可以直接私信楼主,楼主会尽快帮忙解答的!
大佬勿喷。。。。。。。。。
准备工作:
1.主从节点服务器:
master:192.168.207.10 主服务器
slave:192.168.207.20 从服务器
2.mysql安装
关于安装mysql这一点,网上资源很多,楼主安装的是mysql 8.0.29
因为mysql8.0.29的初始密码过于复杂,建议安装完成后修改一下密码,方便后续登录
mysql安装完成后,分别在主从库都创建一个test数据库,用于后续同步测试
开启服务器的3306端口
3.修改配置文件并启动
修改主节点的mysql配置文件,默认路径 /etc/my.cnf
注意:主节点与从节点的service-id不能重复
主节点my.cnf配置
[mysqld]
#开启binlog日志
log-bin=mysql-bin
#注意service-id不能重复
server-id=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
从节点my.cnf配置
[mysqld]
log-bin=mysql-bin
server-id=2
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重启mysql,主节点和从节点均要重启,在两台服务器分别执行
service mysql restart
4.创建同步用户
创建同步用户,需要再主节点的mysql库中创建一个用户,从节点会使用这个用户来进行数据同步
注意:这里的ip是主节点的ip
#创建用户
CREATE USER 'copyuser'@'192.168.207.10' IDENTIFIED WITH mysql_native_password BY 'Qwe@123';
#授权
grant replication slave on *.* to 'copyuser'@'192.168.207.10';
#刷新权限
flush privileges;
5.从服务器同步配置
登录从服务器mysql,配置同步信息
#停止同步
stop slave;
#配置同步信息
change master to master_host='192.168.207.10',master_port=3306,master_user='copyuser',master_password='Qwe@123',master_log_file='mysql-bin.000001',master_log_pos=576;
#如果不想同步所有库,需要指定库的话,可以使用
#change replication filter replicate_do_db=(test);
#启动同步
start slave;
配置完成后,别着急,看看配置是否生效了
show slave status\G;
看到等待更新了之后在看看,Last_Errno是否存在错误信息,如果都没有,恭喜你,配置成功了
6.验证
楼主的3306端口是开放了的,所以我navicat连接上主节点之后,在test库中创建了test表,查看从节点是否创建test库和test表,并对主节点test库的test表进行增删改查,发现从库的test同步了相关操作,完美收官