文章
时间轴
标签
音乐室
友人帐
一刻时光
清单
留言板
相册
算法海洋
登录
注册
关于
Slcpの童话镇 🏰
写文章
MySQL主从搭建
原创
Linux
MySQL
数据库
发布日期:
2022年07月30日
文章字数:
5.1k
阅读次数:
570
阅读时长:
0小时0分0秒
## 前言 公司规定,生产环境中一旦与数据(`缓存也不例外`)扯上关系的一律不由k8s统一管理 因此,别想一键式部署了,只能老老实实单独部署 再此,就记录一下搭建过程,分享给小伙伴们,避免浪费时间 废话不多说,上车 ## 下载 没有安装mysql,我这边也给大伙们准备了~ [MySQL详细安装](https://slcp.top/article/read/1553323346709045250) ## 配置 1、`master`和`node`二台服务器,分别到`/etc/my.cnf`配置文件, 在`mysqld`里添加一下属性 ~~~shell #master [mysqld] server-id=101 log-bin = mysql-bin auto-increment-increment = 2 auto-increment-offset = 1000 #node [mysqld] server-id=103 log-bin = mysql-bin auto-increment-increment = 2 auto-increment-offset = 1001 ~~~ 2、进入Mysql,分别为二台master创建各种的用户供对方使用 `温馨提示`: 本案例为双主从,也就是master同步到node,node同步到master。单主从,就只需要不执行带`*`即可 ~~~shell #master的机器上 CREATE USER 'master'@'%' IDENTIFIED BY '123456'; #node的机器上(*) CREATE USER 'node'@'%' IDENTIFIED BY '123456'; ~~~ 3、分别给用户授予复制权限 ~~~shell #master的机器上 GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' identified by '123456'; #刷新 flush privileges; #node的机器上(*) GRANT REPLICATION SLAVE ON *.* TO 'node'@'%' identified by '123456'; #刷新 flush privileges; ~~~ 4、分别重启服务,登录mysql用户,通过`show master status `查看二进制文件名称还有pos位置,为slave配置复制位置 master  node  5、分别切换master,注意master_log_file还有master_log_pos mysql里面操作 ~~~shell #node的机器上 change master to master_host='master服务器ip',master_user='master',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154; #master的机器上(*) change master to master_host='node服务器ip',master_user='node',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154; ~~~ 6、分别利用命令启动slave ~~~shell #启动 start slave; #关闭 stop slave; ~~~ 7、测试结果,在master上创建数据库,node是否能同步,然后再在node上创建表写数据,看master能否同步。  安装完成之后,所有mysql重启就可以了 ## 其他问题 1、ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 很显然,系统提示我们需要更改密码。一般出现这种情况是第一次登录时,需要先修改密码后才能操作。 ~~~sql set password for root@localhost=password('123456'); ~~~ 2、Slave_SQL_Running:no:  **解决办法如下:** ~~~sql stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; show slave status; ~~~ 3、**Slave_IO_Running: No** ~~~sql #解决办法 stop slave; #根据master重新设置file和pos CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026',MASTER_LOG_POS=0; slave start; show slave status; ~~~ 4、数据库主从日志很大 > 设置只保留30天的binlog > (临时,重启mysql这个参数会失败) > set global expire_logs_days = 30; > (永久,my.cnf中添加,重启后生效)、 > expire_logs_days = 30 > 查看当前的日志保存天数 > show variables like 'expire_logs_days'; 5、若有其他未提及问题,进行[留言](https://slcp.top/message),小编会及时回复~
您阅读这篇文章共耗时:
0小时16分34秒
文章链接:
https://www.slcp.top/article/read/1553325214231289858
版权声明:
本博客所有文章除特別声明外,均采用
CC BY 4.0
许可协议。转载请注明来源
Slcp
!
转载文章以及部分引用均为自己整理记录学习而用,若有侵权,请联系删除。
Linux
MySQL
评论
Valine
Gitalk
目录
搜索
首页
前进
后退
刷新
申请友链
在线联系