zoukankan      html  css  js  c++  java
  • MySql配置主从同步

    一、环境信息

    服务器操作系统:CentOS Linux release 7.6.1810 (Core)
    数据库版本:mysql-5.7
    

    二、下载软件

    # 操作系统下载地址
    http://mirrors.aliyun.com/centos/
    
    # MySQL Yum 仓库
    https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    

    三、安装MySQL

    # 1.切换到/usr/local/目录下
    [root@192 local]# cd /usr/local/
    
    # 2.使用wget命令下载文件
    [root@192 local]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    
    # 3.安装MySQL源
    [root@192 local]# rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
    
    # 4.查看启用的MySQL源
    [root@192 local]# yum repolist all | grep mysql
    
    # 5.如果mysql80-community是启用的,我们就把他禁用,然后启用mysql57-community,如果不修改,仓库默认会安装mysql8。
    [root@192 local]# yum-config-manager --disable mysql80-community
    [root@192 local]# yum-config-manager --enable mysql57-community
    
    # 6.安装mysql57
    [root@192 local]# yum install mysql-community-server
    
    # 7.启动mysql服务器,并查看状态
    [root@192 local]# systemctl start mysqld
    [root@192 local]# systemctl status mysqld
    
    # 8.查看mysql默认密码
    [root@192 local]# grep 'temporary password' /var/log/mysqld.log
    
    # 9.进入数据库修改默认密码,输入以下命令会要求输入密码,输入第8步得到的默认密码即可登录
    [root@192 local]# mysql -uroot -p
    
    # 10.在mysql命令行状态下输入以下命令,修改密码为 MySql@001 ,其他密码自行设置
    # 注意:密码至少包含一个大写字母,一个小写字母,一位数字和一个特殊字符,并且密码总长度至少为8个字符。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySql@001';
    
    # 11.可以远程连接
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MySql@001' WITH GRANT OPTION;
    mysql> flush privileges;
    
    # 12.设置开机自启,不想自启的话可以忽略
    [root@192 local]# systemctl enable mysqld
    [root@192 local]# systemctl daemon-reload
    
    # 13.查看mysql配置文件,后面需要修改
    [root@192 local]# cat /etc/my.cnf
    
    # 14.开放3306端口
    [root@192 local]# firewall-cmd --permanent --add-port=3306/tcp
    [root@192 local]# systemctl restart firewalld.service
    

    三、服务器准备

    在主服务器和从服务器上都安装的相同的mysql
    
    主服务器:CentOS7-MySQL-Master,IP:192.168.37.129
    从服务器01:CentOS7-MySQL-Slave01,IP:192.168.37.130
    

    四、配置主服务器Master

    [root@192 ~]# vim /etc/my.cnf
    ## 在[mysqld]下追加
    [mysqld]
    ## 服务标识,局域网内要唯一
    server-id=129
    ## 开启二进制日志功能,名字任意
    log-bin=mysql-bin
    ## 不需要同步的数据库,多个就复制多行
    binlog-ignore-db=mysql
    ## 为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存。
    binlog_cache_size=1M
    ## 复制模式:混合模式
    binlog_format=mixed
    

    五、配置从服务器Slave01

    # 1.配置服务器的配置文件
    [root@192 ~]# vim /etc/my.cnf
    ## 在[mysqld]下追加
    [mysqld]
    ## 服务标识,局域网内要唯一
    server-id=130
    ## 开启二进制日志功能,名字任意
    log-bin=mysql-slave-bin
    ## 中继日志文件
    relay_log=mysql-relay-bin
    ## 不需要同步的数据库,多个就复制多行
    binlog-ignore-db=mysql
    ## 为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存。
    binlog_cache_size=1M
    ## 开启同步函数和存储过程
    log_bin_trust_function_creators=true
    ## 跳过复制时错误,防止错误时中断
    slave_skip_errors=1062
    
    # 2.在主服务器mysql命令行模式下输入下列命令,找到Position(开始进行复同步的位置)
    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000003 |      154 |              | mysql            |                   |
    +------------------+----------+--------------+------------------+-------------------+
    
    # 3.在从服务器mysql命令行模式下输入
    mysql> change master to master_host='192.168.37.129', master_user='root', master_password='MySql@001', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos=154;
    mysql> start slave;
    
    # 4. 查看链接状态
    mysql> show slave statusG;
    ## 要下列2个参数都为Yes才表示链接成功
    ......
            Slave_IO_Running: Yes
           Slave_SQL_Running: Yes
    ......
    

    六、测试

    # 在主服务器上新建一个数据库 test001
    # 在mysql命令行模式下输入以下命令
    
    # 1.查看主服务器的数据库列表
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    
    # 2.在主服务器上创建一个数据test001
    mysql> create database test001;
    
    # 3.查看从服务器是否同步
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | test001            |
    +--------------------+
    
    原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
  • 相关阅读:
    字节面试 抖音/火山高级后台开发工程师
    面试总结 缓存Redis
    腾讯面试 WXG 微信支付核心业务应用工程师
    富途面试 基础组件Java开发
    mybatis lombok 报错: java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor
    十进制转十六进制
    2020年第11届蓝桥杯C/C++B组 第二轮省赛
    辗转相除法
    2020年第11届蓝桥杯C/C++B组 第一轮省赛
    2020第十一届蓝桥杯大赛软件类国赛题目 C/C++ B 组
  • 原文地址:https://www.cnblogs.com/lixingwu/p/14736694.html
Copyright © 2011-2022 走看看