zoukankan      html  css  js  c++  java
  • 【MySQL】CentOS下安装及搭建主从复制

    CentOS下安装MySQL
    1,wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    2,rpm -ivh mysql-community-release-el7-5.noarch.rpm
    3,yum install mysql-community-server
    4,service mysqld restart(此为重启MySQL服务命令)
    5,mysql -uroot -p(此为进入MySQL命令)
    

    至此,就算安装完毕。刚安装上MySQL时,是没有密码的,所以运行第5个命令之后,直接回车,就能进入到MySQL界面,如图,即表示成功
    这里写图片描述

    MySQL修改密码

    没有密码就能进入MySQL,安全性肯定是不能保证的,所以接下来介绍一下,如何修改密码。运行以下命令即可(这里以将密码改为root为例):

    use mysql;
    update user set password=password("root") where user='root';
    flush privileges;
    exit;
    

    检测密码是否成功,重新进入MySQL:

    mysql -uroot -p
    

    输入root之后,能看到如下界面,即为成功:
    这里写图片描述

    MySQL搭建主从复制

    写在前面:搭建主从复制的前提是,都安装好了MySQL。这篇文章以192.168.243.133为主,192.168.243.132为从为例,来演示搭建过程。同时请注意,MySQL密码为root
    1,133为主,132为从,从133上面,进入MySQL给132授权:

    grant replication slave on *.* to 'root'@'192.168.243.132' identified by 'root';
    
    参数说明:
    用户名:root
    密码:root
    意为:允许192.168.243.132使用用户名为root,密码为root访问133
    

    成功效果如图:
    这里写图片描述
    2,开启133的binarylog
    MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个:

    • 数据恢复
    • 主从数据库。用于slave端执行增删改,保持与master同步。
    编辑my.cnf这个配置文件:vi /etc/my.cnf
    将以下内容保存至该配置文件中:
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    server-id=1
    log-bin=mysql-bin
    expire_logs_days= 7
    max_binlog_size= 100m                       //binlog每个日志文件大小
    binlog_cache_size= 4m                        //binlog缓存大小
    max_binlog_cache_size= 512m                     //最大binlog缓存大小
    binlog-do-db=401_itoo
    lower_case_table_names=1
    

    具体如图:
    这里写图片描述
    查看binary是否开启成功:
    这里写图片描述
    3,在133和132上面分别创建数据库。此处以401_itoo为例

    创建数据库:create database 401_itoo;
    

    4,编辑132的my.cnf文件:

    编辑my.cnf配置文件:vi /etc/my.cnf
    将以下内容保存至该配置文件中:
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    log-bin=mysql-bin
    binlog_format=mixed
    server-id=2
    
    replicate-do-db=401_itoo
    

    与133稍微有些不同,请注意。效果如图:
    这里写图片描述
    5,查看133的binary日志位置,这在后续配置132时会用到。
    连接MySQL,使用命令查看binary:

    show master statusG
    

    这里写图片描述

    具体解析:
    File:日志名称
    Position:日志偏移量
    Binlog_Do_DB:记录日志的库
    

    6,开启132的同步:
    在132上面运行以下命令,如图(这里就自己输吧,我写在这里之后,也是需要自己手动输入的)
    这里写图片描述

    HOST:主节点ip
    USER:133授权给132的用户名
    PASSWORD:授权给132的密码
    MASTER_LOG_FILE:133的日志名称
    MASTER_LOG_POS:日志偏移量,需要和133的一样
    如果忘记了,请回看第5步
    

    7,查看132的slave线程是否开启:

    show slave statusG
    

    这里写图片描述
    Slave_IO_Running为读取master的binaryLog的线程
    Slave_SQL_Running为执行SQL的线程
    这两个线程必须都为YES才可以实现主从复制
    至此主从复制就搭建完了。

    MySQL搭建互为主从

    在以上配置的基础之上,将132作为master,133作为slave进行再次配置。
    1,在132上面连接MySQL之后,为133授权

    grant replication slave on *.* to 'root'@'192.168.243.133' identified by 'root';
    

    2,查看132的binarylog

    show master status;
    

    这里写图片描述
    3,开启133的同步(这里的步骤和 132 配置相同,我就不在这里展示了,如果忘记了,可以往上面再翻翻看)
    4,查看133 slave的状态:

    show slave statusG;
    

    这里写图片描述

    可能出现的错误:
    这里写图片描述
    解决办法:
    出现上图的错误就先将slave停掉,再操作一遍,使用命令:STOP SLAVE,(此处命令必须为大写)
    开启完同步之后需要打开slave,使用命令:START SLAVE(此处命令必须为大写)。
    至此,搭建互为主从复制结束。

    常用到的命令

    在这个过程中有几个命令是常用到的,来总结一下(#后面为注释内容):

    进入mysql:mysql -uroot -p
    重启mysql:systemctl restart mysql或service mysqld restart
    查看slave线程:show slave statusG
    mysql授权命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    #参数说明:
    #第一个root是mysql的用户名
    #第二个root是mysql的密码
    # %表示所有机器都可以通过用户名root,密码root访问该mysql
    flush privileges;  #使修改生效
    

    感谢您的阅读~

  • 相关阅读:
    [leetCode]剑指 Offer 62. 圆圈中最后剩下的数字
    [leetCode]剑指 Offer 61. 扑克牌中的顺子
    [leetCode]剑指 Offer 60. n个骰子的点数
    POJ
    POJ
    POJ
    codeforces
    LightOJ
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/zll-0405/p/10786612.html
Copyright © 2011-2022 走看看