mysql搭建主从复制

mysql搭建主从复制(读写分离)

对于集中式架构来说,日益增长的并发,会造成mysql数据读取的瓶颈!

	利用mysql主从复制可以实现读写分离!主库用来写,从库用来度!可以提升系统的并发性能(主要是数据读取方面的)

步骤1:首先下载安装两个mysql服务器!可以利用docker! 但是基础是要保证 两个服务器所在的机器可以网络通讯!
这里我是使用本机的mysql作为从库,虚拟机docker作为主库!

主库

修改配置:

[mysqld]
log_bin=localhost-bin  #开启二进制日志
#主从复制是从二进制日志里面同步数据,二进制文件可以读取操作的命令,命令就不写了(insert/update/delete)
server_id=122

重启服务

#主库添加给从库,复制的账号,并给账号赋予权限

create user 'slave'@'%' IDENTIFIED BY 'slave';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave'; 
SHOW MASTER STATUS;#查看主库的日志文件状态

mysql搭建主从复制_第1张图片

从库

修改配置文件

[mysqld]
server_id = 45 #id是保证唯一,不与主库相同就可以了,从库建议不要开二进制日志

重启服务

从库连接主库,并指定二进制日志的进行到哪里了

change master to
master_host='192.168.73.128',master_user='slave',master_password="slave",master_log_file='localhost-bin.000002',master_log_pos=649;

开启从节点(会连接主库)

start slave

查看是否成功

show slave status;
mysql搭建主从复制_第2张图片
两个yes表示成功,在主库创建一个数据库会同步到从库!

可能出现的问题

Slave is not configured or failed to initialize properly. You must at least set --server-id

配置文件没有修改好! 请重修修改并启动!

从主库到从库执行指令的时候可能会报错

This operation cannot be performed with a running slave io thread; run STOP

两个命令一起执行:

STOP slave;
change master to
master_host='192.168.73.128',master_user='slave',master_password="slave",master_log_file='localhost-bin.000021',master_log_pos=649;

show slave status;
Slave_IO_Running 显示在connecting的话是 服务器之间通讯有问题!

最后说一些配置文件怎么找的问题

我的是5.7版本:

%programData%  //c盘下面查找

mysql搭建主从复制_第3张图片
####docker查找
docker ps
查看在运行的容器
mysql搭建主从复制_第4张图片
docker exec -it d52a6d2d9a89 /bin/bash
进入容器内部,内部内有vim以及vi 需要自己安装 可以使用more查看
more /etc/mysql/mysql.conf.d/mysqld.cnf
`如果需要修改可以先复制到宿主机修改后在复制回到容器内部(文件夹需要自己创建)!命令如下:
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /usr/local/mysql/mysqld.cnf
mysql为启动是容器的名字 – name 后面指定的
然后在宿主机vim修改完成,复制回容器 重启容器 docker restart mysql(容器名字或者使用容器id)
docker cp /usr/local/mysql/mysqld.cnf mysql:/etc/mysql/mysql.conf.d/mysqld.cnf

最后祝大家成功!

你可能感兴趣的:(读写分离,mysql)