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;
本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaohistory/p/18679971

浙公网安备 33010602011771号