基于centos7 mysql主从搭建

1.在主机上安装好mysql 方便等一会主从搭建在从机上再安装mysql。可以参考以下链接:

Centos7安装MySQL详细步骤_在centos7上安装mysql_緑水長流*z的博客-CSDN博客

2.对主机centos7(master)做克隆。克隆出 一个slave机。

一路点点点    如果 实在不会。参考一下以下链接(包含centos7的安装以及克隆):

CentOS7安装与克隆_centos克隆_冉半夏生的博客-CSDN博客

3.这边再对克隆的虚拟机的网卡一定要做修改。不然跟主机的ip一样,同时打开会冲突。以下是网卡配置。从机的网卡配置一定要注释掉uuid

[配置]centos7如何配置网卡_centos7网卡配置_鸭腿面好吃的博客-CSDN博客

4.在对mysql做主从搭建的时候,因为是克隆的 mysql的service-uuid是一样的,这里一定要改,主机从机随边改一个就好。

find / -iname "auto.cnf"
/var/lib/mysql/auto.cnf

#从搜索到的结果路径中修改 service-uuid的值
[auto]
server-uuid=312c2259-f54f-11ed-8a9a-000c29131471

vim /var/lib/mysql/auto.cnf

5.主从机的配置

5.1主机配置mysql配置文件【my.cnf】|【my.ini】

        master如下:

[mysqld]
server-id = 1        # 节点ID,确保唯一
log config
log-bin = mysql-bin     #开启mysql的binlog日志功能,binlog日志位置
sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7                           #binlog过期清理时间
max_binlog_size = 100m                    #binlog每个日志文件大小
binlog_cache_size = 4m                        #binlog缓存大小

binlog-do-db=crm   #需要同步的数据库
binlog-do-db=test    #需要同步的数据库

max_binlog_cache_size= 512m              #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

auto-increment-offset = 1     # 自增值的偏移量
auto-increment-increment = 1  # 自增值的自增量
slave-skip-errors = all #跳过从库错误

 slave配置:

[mysqld]
server-id=2
log-bin=mysql-bin #如果从数据库,不需要再往其他数据库同步,可以注释掉
relay-log=slave-relay-bin #必须开启,从主数据库同步的binlog会写入到该目录下
relay-log-index=slave-relay-bin
#如果主从数据库名称相同 (可配多个)
replication-do-db=crm
#如果主从数据库名称不同 (可配多个)
replication-rewrite-db= 主数据库名 -> 从数据库名

5.2 主从机mysql 服务的重启

service mysql restart

5.3  主机mysql中创建远程用户及配置。

假设 master的ip为192.168.2.87  slave的ip为:192.168.2.88.

CREATE USER slave IDENTIFIED BY 'Slave@123';

# 密码过于简单 要修改密码
# 默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符
set global validate_password_policy=0;       # 关闭密码复杂性策略
 set global validate_password_length=1;      # 设置密码复杂性要求密码最低长度为1
 select @@validate_password_policy;          # 查看密码复杂性策略
 select @@validate_password_length;          # 查看密码复杂性要求密码最低长度大小

根据自己需求 自己设置mysql 密码策略及长度




#下面的ip是从机的ip 意味着哪个远程ip可以调用主机的master mysql
grant replication SLAVE on *.* to 'slave '@'192.168.2.88' identified by 'Slave@123';

#刷新权限别忘了
flush privileges;

5.4 在主服务器上查看master信息,需要记住【file】和【position】


mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      665 | crm          | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

5.5 登陆从服务器mysql,增加从节点需要同步的master信息,其中【master_log_file】和【master_log_pos】是从上一步获取到的两个字段信息。执行以下语句

change master to master_host='192.168.2.87',master_user='slave',master_password='Slave@123',master_log_file='mysql_bin.000002',master_log_pos=665;


参数解释: MASTER_HOST : 设置要连接的主服务器的ip地址 
MASTER_USER : 设置要连接的主服务器的用户名
MASTER_PASSWORD : 设置要连接的主服务器的密码 
MASTER_LOG_FILE :设置要连接的主服务器的bin日志的日志名称,即5.4得到的信息 
MASTER_LOG_POS :设置要连接的主服务器的bin日志的记录位置,即5.4得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

5.6  在从服务器上启动主从

stop slave;
reset slave;

5.7 查看主从同步状态,没有报错启动成功

show slave status \G;
OR
show slave status;




*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.2.87 
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: localhost-relay-bin.000010
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 744
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: 312c2259-f54f-11ed-8a9a-000c29131471
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

5.8 看见下面都是yes 主从就搭建好了。

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes

6 一些错误

一、远传链接不上可能是master主机的端口未打开。
1.开启端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

2.重启防火墙

firewall-cmd --reload

3.查看已经开放的端口

firewall-cmd --list-ports


二、直接关闭防火墙
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld


三、从机时克隆的有时候会出现mac一样的情况。我是重新启动从机后出现网关错误。
听网上说是因为我的centos7安装了桌面有了一个NetworkManager 影响到了network的工作。我本人是直接把NetworkManager直接关了就解决问题了。 然后重启网卡就好了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值