mysql搭建手册

mysql搭建手册

主从搭建

  1. 搭建mysql

  2. 关闭防火墙:systemctl stop firewalld 如果失败先安装 yum install iptables-services

  3. 配置数据库 /etc/my.cnf,配置同步数据库等

    • 主库配置信息

      [mysqld]
      datadir=/usr/local/mysql/data
      log-error=/usr/local/mysql/data/error.log
      port = 3306
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      symbolic-links=0
      max_connections=400
      innodb_file_per_table=1
      #表名大小写不明感,敏感为
      lower_case_table_names=1
      #主从配置
      #服务的唯一编号
      server-id=1
      #每次执行写入操作binlog和磁盘同步
      sync-binlog=1
      # 开启mysql binlog功能
      log-bin = mysql-bin
      # binlog记录内容的方式,记录被操作的每一行
      binlog_format = ROW
      # 减少记录日志的内容,只记录受影响的列
      binlog_row_image = minimal
      # 指定需要同步复制的数据库名,不指定其它库都会同步操作
      binlog-do-db = lagou
      #忽略的库
      binlog_ignore-db=performance_schema
      binlog_ignore-db=information_schema
      binlog_ignore-db=sys
      
      
    • 从库配置:

      [mysqld]
      datadir=/usr/local/mysql/data
      log-error=/usr/local/mysql/data/error.log
      port = 3306
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      symbolic-links=0
      max_connections=400
      innodb_file_per_table=1
      #表名大小写不明感,敏感为
      lower_case_table_names=1
      #主从配置
      #服务的唯一编号
      server-id=2
      #每次执行写入操作binlog和磁盘同步
      sync-binlog=1
      # 开启mysql binlog功能
      log-bin = mysql-bin
      # binlog记录内容的方式,记录被操作的每一行
      binlog_format = ROW
      # 减少记录日志的内容,只记录受影响的列
      binlog_row_image = minimal
      # 指定需要同步复制的数据库名,不指定其它库都会同步操作
      binlog-do-db = lagou
      #忽略的库
      binlog_ignore-db=performance_schema
      binlog_ignore-db=information_schema
      binlog_ignore-db=sys
      #修改从库relay log名字
      relay_log=mysql-relay-bin
      #修改只读
      read_only=1
      
  4. 服务重启 systemctl restart mysqld

  5. 开放远程连接权限,进入mysql命令行:

    • grant replication slave on . to ‘root’@’%’ identified by ‘root’;
    • grant all privileges on . to ‘root’@’%’ identified by ‘root’; flush privileges;
    • show master status;
  6. 修改从库配置信息:

    • 指定唯一服务id:server-id

    • 修改从库relay log名字:relay_log=mysql-relay-bin

    • 修改只读:read_only=1

      注意:普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误,但具有super权限的用户,例如在本地或远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;

  7. 配置master连接,进入mysql命令行:

    • change master to master_host=‘39.96.204.209’, master_port=3306,master_user=‘root’,master_password=‘root’,master_log_file=‘mysql-bin.000001’,master_log_pos=154;

      注意master_log_pos配置信息可以在master的mysql中查看在这里插入图片描述

    • 开启从库:start slave;

    • 查看转态:show slave status \G;

  8. 创建数据库表:

    • CREATE TABLE position_detail (
      id int(11) NOT NULL AUTO_INCREMENT,
      pid int(11) DEFAULT NULL,
      description text,
      PRIMARY KEY (id)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    • CREATE TABLE position (
      id int(8) NOT NULL AUTO_INCREMENT,
      name varchar(255) DEFAULT NULL,
      salary varchar(10) DEFAULT NULL,
      city varchar(255) DEFAULT NULL,
      PRIMARY KEY (id)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  9. 查看创建的数据表是否同步到从库中,至此主从搭建完成

主从搭建-半同步复制方式

  1. 安装插件,进入mysql命令行,记得主从都需要安装插件:

    • 查看是否支持动态加载:select @@have_dynamic_loading;

    • 查看插件:show plugins;

    • 安装插件:install plugin rpl_semi_sync_master soname ‘semisync_master.so’;

    • 查看半同步复制参数信息:show variables like ‘%semi%’;

    • 开启半同步OFF->NO,以及设置temeout:

      • set global rpl_semi_sync_master_enabled=1;
      • set global rpl_semi_sync_master_timeout=1000;
      • show variables like ‘%semi%’;
      • 在这里插入图片描述
    • 命令行重启从库重启:

      • stop slave;
      • start slave;
    • 在主库添加写,从库查看是否正常,如果发现从库没有同步

      • show slave status \G;

        )

        由于主键冲突导致日志同步失败,删除冲突数据即可。
        从库冲突错误:https://www.cnblogs.com/langdashu/p/5920436.html

MHA高可用架构搭建

  1. ​ 使用三台机器来完成本次MHA的搭建:

    	IP			主机名		系统版本		角色					 	节点
    172.25.5.1		weijie1 	Centos		master node				node1
    172.25.5.2      weijie2 	Centos		slave1 node				node2
    172.25.5.3      weijie3		Centos		slave2 node+manager		node3
    
    
  2. MHA下载:

    wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58.tar.gz
    wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58.tar.gz
    
    
  3. 配置集群免密登录:所有节点都要操作

    cd /root/.ssh/
    ssh-keygen -t dsa -P '' -f id_dsa
    cat id_dsa.pub >> authorized_keys
    
  4. 主库接收slave上的密钥

    scp 172.25.5.3:/root/.ssh/authorized_keys ./authorized_keys.3
    scp 172.25.5.4:/root/.ssh/authorized_keys ./authorized_keys.4
    

MHA没有搭建成功,日后补充吧!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值