搭建mysql主从复制
前言
之前学习MySQL的时候一直听说主从复制,但是没有具体的落地实现,今天进行一次实操记录下实现过程,也方便日后使用的时候可以有正确的参考
一、首先要先有两个主机,在上面都安装上mysql
我采取的主机为远程服务器(CentOS 7 mysql8),从节点用的是本机(win 10 mysql8)
二、安装好之后对配置文件进行修改
1.对主节点master配置文件进行修改(远程服务器)
我的配置文件目录为 /etc/my.cnf
//指定下bin文件
log_bin=imooc-bin
//指定下主节点的id(唯一不能重复)
server-id=1
//指定下要同步哪个库,这里是db库
binlog-do-db=db
2.修改本地slave数据库的配置文件
我的目录为C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
//指定唯一id
server-id=2
//这里的意思为只能读,不能其他操作,如果说想有写操作将值设置为0
read-only=1
//指定数据库
replicate-do-db=db
配置完之后均需要重启mysql服务
三、主服务器建立用户
CREATE USER 'slave'@'%' IDENTIFIED BY 'xxxxxxx';#创建新的账号,账号名称为slave,密码为xxxxxxx
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'; #给账号slave同步binlog的权限
FLUSH PRIVILEGES;#刷新一下
之后执行
show master status;
这两个值要记下来,后面要用到
四、建立连接
从服务器(本机)建立连接
#master服务器的ip地址
CHANGE MASTER TO master_host ='xx.xxx.xxx.xx',
#第三步创建的账户
master_user ='slave',
#第三步创建的密码
master_password ='xxxxxxx',
#上图中的File
master_log_file ='imooc-bin.000001',
#上图中的position
master_log_pos = 2831;
执行
start slave ;
五、大功告成
执行
show slave status;
看两个字段
这两个字段如果都是yes,就成功了;
总结
其实配置不难,说下我在配置中遇到的问题吧
1、要注意下服务器中3306的端口要放开
2、设置密码的时候尽量设置符合规则的,否则可能会失败
3、权限别忘加了,可以在mysql里的user表看一下
4、在主从复制的时候其实是在position之后赋值的,要注意如果之前主库中有数据,就别动之前的数据了,否则成功后也会变成失败
5、如果数据库的版本比较新8.0.22之后,可能链接的时候有所不同,可以用下面的sql,其实参数都是这些只不过是属性名称变了
CHANGE REPLICATION SOURCE TO SOURCE_HOST='xx.xxx.xxx.xx',SOURCE_USER='slave',SOURCE_PASSWORD='xxxxxx',SOURCE_LOG_FILE='imooc-bin.000001',SOURCE_LOG_POS='2831';
执行的时候使用
start replica;
查看的时候使用
show replica status;
我遇到的问题大概就是这些,希望可以帮助到刚刚准备搭建主从的小伙伴