• centos7环境下Mysql5.6主从配置


    操作使用的环境

    主从配置后,主写同步到从,从写无法同步到主(已测试)

    Mysql主从配置:
    主服务器ip:192.168.200.100
    从服务器ip:192.168.200.200

    系统:centos7 3.10.0
    [root@localhost lib]# uname -a
    Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

    数据库:mysql5.6.45
    [root@localhost lib]# mysql --version
    mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper

    一、数据库安装
    1、关掉防火墙
    2、关掉shelinux
    3、rpm包安装。

    查看防火墙状态:# systemctl list-unit-files|grep firewalld.service
    如果显示firewalld.service enabled则需要关闭
    # systemctl stop firewalld.service 停止防火墙
    # systemctl disable firewalld.service #禁止firewall开机启动

    1、安装 MySQL:
    接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包,下载地址为:https://dev.mysql.com/downloads/repo/yum/

    1-1Wget下载rpm包
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

    1-2解压rpm包
    rpm -ivh mysql-community-release-el7-5.noarch.rpm

    1-3更新yum源
    yum update

    1-4yum安装
    yum install mysql-server

    1-5mysql数据库的属组授权(一般情况默认是mysql组)
    chown mysql:mysql -R /var/lib/mysql

    1-6新数据库需要初始化数据库
    mysqld –initialize

    1-7启动mysql数据库
    systemctl start mysqld

    1-8查看数据库状态
    systemctl status mysqld
    以上为数据库通过rpm包的安装过程,做主备的机器都按上述安装步骤操作

    数据库授权,是否允许某用户管理
    使用mysql命令进入mysql,mysql -uroot -p,然后输入密码。
    授权远程访问操作如下三步:
    1.use mysql; #取得mysql操作权

    2.grant all privileges on *.* to 'root'@'%' identified by 'password'; #授权用户,指定可操作的库和表以及可使用的用户、IP、密码

    3.flush privileges; #刷新权限表

    4、systemctl restart mysqld #退出mysql重启mysql服务

    三、配置master主数据库
    1、修改配置文件
    Linux环境下,mysql的配置文件位于 /etc/my.cnf
    # vi /etc/my.cnf   编辑配置文件
    配置文件中加入(需在[mysqld]头部下配置如下命令)
    log-bin=mysql-bin #开启二进制日志
    server-id=2 #标识唯一id(必须),一般使用ip最后位
    binlog-ignore-db=information_schema #指定不同步的数据库,可设置多个
    binlog-ignore-db=cluster
    binlog-ignore-db=mysql
    binlog-do-db=ufind_db #指定需要同步的数据库(和slave是相互匹配的),可以设置多个,配置完后续,如果没这个库,需要创建
    解释:server-id:用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。
    binlog-ignore-db:表示同步的时候ignore的数据库
    binlog-do-db:指定需要同步的数据库

    2、重启服务,进入mysql
    # systemctl restart mysqld.service 重启mysql服务

    3.进去mysql设置允许从库获得主库日志
    注:这里使用root用户配置,不建议使用,正常使用新创建的用户进行授权
    #给从库放权限
    [root@localhost ~]# mysql -u root -pxxx
    mysql>GRANT FILE ON *.* TO '用户名'@'IP地址' IDENTIFIED BY '密码';   #创建用户
    mysql>GRANT REPLICATION SLAVE ON *.* TO 'zhq'@'192.168.2.2' IDENTIFIED BY '123456';  
    #修改用户权限
    mysql>select host,user,password from mysql.user;  #查看是否修改成功
    mysql>FLUSH PRIVILEGES;   #刷新授权
    注:如果数据库有数据需要进行数据迁移保证数据的一致性
    创建数据库: 在从库中创建一个和主库相同的数据库,不然两个数据库不能同步(进行过数据迁移就跳过)

    4.重启MySQL,登录MySQL,查看主库信息
    mysql> show master status; 查看主数据库信息
    如果执行这个步骤最后为Empty set(0.00 sec),那说明前面的my.cnf没配置对。如果配置成功,会显示下图。

    四、配置从数据库
    修改配置文件,方法同上,加入内容为:
    log-bin=mysql-bin
    server-id=3
    binlog-ignore-db=information_schema
    binlog-ignore-db=cluster
    binlog-ignore-db=mysq
    replicate-do-db=ufind_db
    replicate-ignore-db=mysql
    log-slave-updates
    slave-skip-errors=all
    slave-net-timeout=60

    4.重启MySQL,登录MySQL
    #关闭Slave
    mysql> stop slave; #设置连接主库信息
    mysql> change master to master_host='192.168.200.100',master_user='myslave',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=292; #设置连接主库信息,log_file和log_pos参考上图片标红两个参数
    mysql> start slave; #开启Slave

    注:上面的master_log_file是在配置Master的时候的File字段, master_log_pos是在配置Master的Position 字段。一定要一一对应

    5.查看信息


    mysql> show slave status G; #slave从机器上查看连接是否没问题。

     

    注意事项:
    1、检查Slave_IO_Running和Slave_SQL_Running的状态是否为yes,如果显示no则有问题,需查看下面的报错信息进行处理。
    2、Last_IO_Error:  #此处会显示错误信息,如果没问题,则不显示。

    3、从库报这个错误:Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
    Got fatal error 1236 from master when reading data from binary log: 'could not find next log'

    解决方法:说明从库配置的log_file和log_pos的值与主库的值不对应。需
    CHANGE MASTER TO MASTER_LOG_FILE='testdbbinlog.000002',MASTER_LOG_POS=120; #设置连接主库信息
    mysql>stop slave; #停止从数据服务
    mysql>reset slave; #更新从数据服务
    mysql>start slave; #重启从服务

    用到的mysql命令:
    1.查看数据库中的数据库
    show databases;
    2.使用某个数据库
    use 数据库名字;
    3.显示数据库中的表
    show tables;

  • 相关阅读:
    2月2日学习记录
    Python爬虫学习(三)使用Scrapy库
    2月1日学习记录
    Python爬虫学习(二)使用re库
    Python爬虫学习(二)使用Beautiful Soup库
    Python爬虫学习(一)使用requests库和robots协议
    spark学习(五)RDD
    body内常用标签--form表单
    body内常用标签
    HTTP协议
  • 原文地址:https://www.cnblogs.com/xiangxu-zhao/p/12360662.html
Copyright © 2020-2023  润新知