mysql主从读写分离搭建

第一步下载安装mysql,自己百度去~

然后把下面里面的内容改成主从库不一样的内容。或者直接删掉,它会自动生成

 

主库配置:

# mysql服务ID,保证在整个集群环境中唯一
server_id=1


# 开启binlog
log-bin="mysql-bin"
#设置需要同步的库
binlog‐do‐db=user_db
#忽略不同步的库
binlog‐ignore‐db=mysql
binlog‐ignore‐db=information_schema
binlog‐ignore‐db=performance_schema

# 然后重启服务
systemctl restart mysql
1.创建用户
CREATE USER 'wb'@'%' IDENTIFIED BY '123456';
2.修改密码【如有需要可以设置】
ALTER USER wb@'%' IDENTIFIED BY '123456';
#在master节点授权任何客户端可以用root用户登录到数据库
3.-- 授予权限
GRANT ALL PRIVILEGES ON *.* TO wb@'%';
4.# 在master节点授予权限以进行主从复制
grant replication slave,replication client on *.* to 'wb'@'%'

flush privileges;

#查看binlog日志的信息
show master status;

 show master status;

这里看一下File和Position里面的参数,后面从库会用到

如果在搭建时主库的原有数据是不需要的,可以重置偏移量,执行:reset master;然后查看新的偏移量供从库使用


 

 从库配置:

# mysql服务ID,保证在整个集群环境中唯一
server_id=2
# 开启binlog
log-bin="mysql-bin"
# 重启服务
systemctl restart mysql
#然后连接数据库,敲下面的语句,设置同步的主库
change master to master_host='192.168.1.4',master_user='wb',master_password='123456',master_log_file='mysql-bin.000007',master_log_pos=1381;
#开启同步
start slave;
查看状态:
show slave status\G;

 show slave status查看状态,这一红框里面的内容,如果不一样,就说明你的出问题了,要重新排查并安装。后面我会给出排查步骤以问题样例

 


 

 如果在从库的状态那一栏看到如下错误,需要修改密码类型:caching sha2 password

ALTER USER 'wb'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

 或者如下方式解决:太麻烦了,我没搞

 重启你项目发现报错如下时:

aused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/apache/shardingsphere/shardingjdbc/spring/boot/SpringBootConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

是因为上面开启了SSL,或者类似SSL的配置需要在俩的驱动地址后添加这个参数:

&allowPublicKeyRetrieval=true

 

这个说明之前已经建立的从库与主库的连接,需要断开后重新建立

断开重连步骤如下:

STOP SLAVE;

reset slave all

start SLAVE;

 

 


如果是一主多从的搭建,只需要重复上面从库的配置即可

 


 

一主多从的架构如果 主库挂了,从库不能提供写服务,所以在业务需要的时候可以设置多住多从的架构
详情可以看这篇文章:https://blog.csdn.net/weixin_45682053/article/details/141264900

  


 

主备模式:配置和主从一样,唯一的区别就是在从库要做如下设置:

在从库的配置文件中添加 read_only = 1 ,或者在从库的 MySQL 客户端执行 SET GLOBAL read_only = 1; 

 
 
posted @ 2025-01-19 20:58  余生请多指教ANT  阅读(20)  评论(0)    收藏  举报