仿网链网站源代码下载,郑州网站seo多少钱,公众平台申请,网站空间费价格1 主从架构解决了什么问题
随着业务的持续增长#xff0c;单体数据库满足不了业务的需求#xff0c;可能会出现负载过重#xff0c;操作数据库速度变慢的情况。为了解决这个问题#xff0c;数据库一般采用一主一从、一主多从的架构。
为了操作提高效率#xff0c;减轻压…1 主从架构解决了什么问题
随着业务的持续增长单体数据库满足不了业务的需求可能会出现负载过重操作数据库速度变慢的情况。为了解决这个问题数据库一般采用一主一从、一主多从的架构。
为了操作提高效率减轻压力采用读写分离
• 主数据库只负责写
• 从数据库只负责读
2 主从复制的原理 MySQL的主从复制基于主数据库的二进制日志binlog中记录所有对数据库的更改操作所以主数据库需要开启二进制日志。 每个从数据库和主数据库进行配置连接。在主数据库上进行的任何更新操作都会同步给从数据库从数据库接收主数据库的二进制日志。从数据库根据二进制日志进行数据操作。 从数据库执行的数据操作不会对主数据库造成干扰。即从数据库在备份数据过程中主数据库可继续处理数据更新操作。 3 主从复制配置实战
主数据库的搭建请参考之前的文章【揭秘】Docker安装MySQL8.0大公开你知道吗
3.1 使用docker启动从数据库
docker run -p 3307:3306 -e MYSQL_ROOT_PSSWORD123456 --name mysql-slaver -v /root/mysql2/conf/my.cnf:/etc/mysql/my.cnf -v /root/mysql2/logs:/var/log/mysql -v /root/mysql2/data:/var/lib/mysql -v /root/mysql2/mysql-files:/var/lib/mysql-files -d mysql:8.03.2 修改server_id
修改my.cnf配置文件修改主数据库的server_id为1从服的server_id为2修改后重启数据库。
[rootVM-24-10-centos conf]#
cat my.cnf
[mysqld]
lower_case_table_names1
server-id1
#skip-grant-tables使用MySQL命令查看是否设置成功查询server_id是否可配置文件中一致
show variables like server_id;3.3 修改server-uuid
修改data目录下的auto.cnf中的server-uuid主从的server-uuid不能一致否则会有报错#Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
[rootVM-24-10-centos data]# cat auto.cnf
[auto]
server-uuid60a0cb5e-1a2f-11ee-8244-0242ac1100033.4 在主数据库上新增用户
在主数据库上新增用户用于从数据库同步数据时连接使用
1、创建新用户 create user ‘slave’‘%’ identified by ‘slave12345’; 2、刷新权限 flush privileges; 3、赋予权限%标识不限制主机 grant replication slave on . to ‘slave’‘%’; 4、刷新权限 flush privileges; 5、查看用户 select host,user,plugin,authentication_string from mysql.user; 3.5 在主数据库上查看Master状态
查询Master状态并记录 File 和 Position 的值 show master status; 3.6 在从数据库上获取主数据库的密钥
否则会报错# error connecting to master ‘slave10.0.24.10:3306’ - retry-time: 60 retries: 51 message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection. mysql -u slave -pslave12345 -h 10.0.24.10 -P 3306 --get-server-public-key 3.7 在从数据库上设置同步
设置主数据库参数
change master to master_host 10.0.24.10, master_port 3306, master_user slave, master_password slave12345, master_log_file binlog.000007, master_log_pos 156;master_host 为主数据库的ipmaster_port为主数据库的端口号master_usermaster_password为主数据库新建的同步数据使用的用户名和密码master_log_files为查询主数据库状态时的Filemaster_log_pos为查询主数据库状态时的Position
3.8 同步命令
开始同步
start slave;当出现问题时停止同步# 停止同步
stop slave;
reset slave;3.9 查看设置是否成功
在从数据库上使用show slave status查看同步状态
show slave status;如上显示即为主从数据库搭建成功。 关注我我们一起学习