zoukankan      html  css  js  c++  java
  • mysql5.7 安装及主从搭建

    环境、版本

    centos 7.2    mysql5.7.13

    mysql  Master  操作

    下载软件包

    cd /opt/soft wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz --no-check-certificate

    安装

    tar -xvf /opt/soft/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz  -C /usr/local/
    
    mv mysql-5.7.13-linux-glibc2.5-x86_64   mysql
    
    mkdir -p /data/mysql       #数据目录
    
    mkdir -p /data/log/mysql     #日志目录
    
    groupadd mysql
    
    useradd  -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
    
    chown -R mysql:mysql  /user/local/mysql
    
    chown -R mysql:mysql /data/mysql/
    
    chown -R mysql:mysql /data/log/
    
    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql    #初始化数据库,完成后会生成一个临时密码,注意保存
    
    ./bin/mysql_ssl_rsa_setup --datadir=/data/mysql                    #数据库加密

    常规配置

    vi  /etc/my.cnf

    [mysql]
    default-character-set=utf8
     
    [mysqld]
    default-storage-engine=INNODB
    character_set_server=utf8
    log-bin = /data/mysql/binlog/mysql-bin.log          #单独设置binlog 日志路径,最好与数据目录分开,设置到不同磁盘分区,这样提高IO效率

      server-id=1                             #服务器唯一标识,启动binlog日志就必须设置唯一id ,否则无法启动

      log_bin_index=/data/mysql/binlog/mysql-bin.index

      binlog-format=MIXED                        #主从同步采用此种格式的binlog 

     [mysqld_safe]
     log-error = /data/log/mysql/error.log              #增加错误日志,当数据库无法启动等问题时会产生错误日志,通过日志来排查问题

    mysql 命令加环境变量

    echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
    
    bash  /etc/profile

    通过初始密码登录改一个新密码

    mysql -uroot -p 
    set password=password("密码");
    flush privileges;

    systemctl enable mysql    开机自启

    主从同步配置

    vi /etc/my.cnf 
    
    server-id=1
    log_bin=master-bin
    log_bin_index=master-bin.index
    binlog_do_db=test
    #备注:
    #server-id 服务器唯一标识。
    #log_bin 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。
    #binlog_do_db 指定记录二进制日志的数据库,即需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可。
    #binlog_ignore_db 指定不记录二进制日志的数据库,即不需要复制的数据库名,如果有多个数据库,重复设置这个选项即可。
    #其中需要注意的是,binlog_do_db和binlog_ignore_db为互斥选项,一般只需要一个即可

    创建从服务器权限

    [root@localhost mysql]# mysql -uroot -p
    Enter password:
     
    #创建从数据库的masterbackup用户和权限
    mysql> grant replication slave on *.* to masterbackup@'192.168.17.%' identified by '123456';
    #备注
    #192.168.17.%通配符,表示0-255的IP都可访问主服务器,正式环境请配置指定从服务器IP
    #若将 192.168.17.% 改为 %,则任何ip均可作为其从数据库来访问主服务器
     
    #退出mysql
    mysql> exit;
    service mysql restart
    mysql -uroot -p 
    show master status;              #记录pos 位置,和日志文件名字

    mysql  Backup 操作

    下载,安装,常规配置同上

    主从配置

    vi /etc/my.cnf
    
    server-id=2
    relay-log=slave-relay-bin
    relay-log-index=slave-relay-bin.index
    启动同步
    mysql -uroot -p

    change master to master_host='192.168.1.1',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master-bin.000004',master_log_pos=154;

      start slave

      show slave statusG;        #查看状态是否正常

    master_log_file,master_log_pos 为在主上执行show master status命令查看获得信息
    show slave status;G     查看状态如下全为yes 即可,否则配置有问题

    Slave_SQL_Running: Yes
    Slave_IO_Running: Yes

    测试

    登录mysql 主 
    选择test 数据,创建如下表
    create table tb_test(ID varchar(36) primary key comment '主键ID',MEMO varchar(500) not null comment '信息');
    insert into tb_test(ID,MEMO) values('1','one test');

     后期增加新的要同步数据库

    1、直接在master 配置文件上配置要增加的数据库名称,

    2、授权从数据库能够访问同步的新数据库

    3、停止从的同步服务,重新执行 change master to master_host='192.168.1.1',master_port=3306,master_user='masterbackup',...命令

    4、start slave

    5、show slave status;

    更改binlog 日志格式

    无需重启mysql服务

    主库

    set global binlog_format='mixed';

    vi /etc/my.cnf

    binlog-format=MIXED

  • 相关阅读:
    objectivec 多个参数的函数的例子
    EDM 电子邮件制作规范
    一封让老总流泪的辞职申请书
    10个优秀的JavaScript参考手册
    应聘需知
    理解内联(display:inline)和浮动(float:left;)的区别
    写CSS常见错误,童鞋们注意了
    15个css常识
    经典设计网站推荐
    2011年春运电话订火车票流程
  • 原文地址:https://www.cnblogs.com/fanggege/p/10856153.html
Copyright © 2011-2022 走看看