Mysql读写分离搭建-基础构建(一)
1. 基础准备
(1)安装两台机器 一台机器做为master 一台机器作为slave
(2)安装的mysql版本尽量保持一致,本文推荐mysql8.0,保证能够互访。如果是虚拟器,请设置为桥连模式。
(3)安装步骤推荐大家阅读
https://blog.csdn.net/qq_37350706/article/details/81707862
2. 基础命令
#启动mysql服务
net start mysql
#停止mysql服务
net stop mysql
#修改mysql用户密码
mysqladmin -uroot -p password
#windows 下如何登陆mysql
(1)win+R 输入cmd 进入控制台
(2)输入 mysql -u root -p 输入密码,完成登录。后续章节的命令都需要登录mysql后才能执行。
3. 配置
3.1 服务端配置
(1)修改配置文件
[mysqld]
#以下为主从读写配置
server-id=1
#备份数据库 如果是多个数据库 就配置第二行 如test、test1
binlog-do-db=test
#binlog-do-db=test1
#可以忽略的数据库 这里如果不填写 应该就不执行了
#binlog-ignore-do-db=test2
#备份方式
log-bin=mysql-bin
(2)新增用户
create user 'repl'@'%' identified by 'repl';
grant replication slave on *.* to 'repl'@'%' ;
#给用户授予相应的数据库操作权限 测试的数据库是test
grant all privileges on test.* to 'repl'@'%';
flush privileges;
(3)验证配置效果
show variables like 'server_id';
(4)采集主机数据
show master status\G
File参数:指定了需要同步的日志文件名称。
Position参数:此节点需要注意,它的意思是数据日志已经写到此位置,那么我们复制数据也是从这里复制。
3.2 客户端配置
[mysqld]
#以下为主从读写配置
server-id=2
#备份数据库 如果是多个数据库 就配置第二行 如test、test1
binlog-do-db=test
log-bin=mysql-bin
4. 开始同步
4.1 基础数据同步
在同步之前需要将主库数据同步到从库,保持两库同步之前数据保持一致,同步方式可以用主库导出脚本,从库导入的模式。
4.2 采集服务端信息
在服务端执行命令
show master status\G
关注File和Position两个节点。
4.3 客户端执行同步
#暂停客户端服务
stop slave;
配置参数中
MASTER_HOST= 服务器IP
MASTER_USER=服务端用户
MASTER_PASSWORD=服务端密码
MASTER_PORT=服务端端口
MASTER_LOG_FILE=服务端同步文件(对应4.2命令采集到的File参数)
MASTER_LOG_POS=服务端同步文件(对应4.2命令采集到的Position参数)
#配置同步参数
CHANGE MASTER TO MASTER_HOST= '169.254.210.192', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000003',MASTER_CONNECT_RETRY=30,MASTER_LOG_POS=1023;
#启动客户端服务
start slave;
#显示同步结果
show slave status\G
如果 此两项为 yes 则基本能够满足同步的需求
Slave_IO_Runing:YES
Slave_SQL_Runing:YES
执行到这里,就可以进行两个数据库间的同步了。