zoukankan      html  css  js  c++  java
  • mysql主从复制

    mysql主从复制

    1.centos7如何安装mysql

    1.yum安装

    2.源代码编译安装

    3.rpm包安装

    yum安装的前提条件,是准备yum源,可以选择清华园,阿里源,等等

    1.安装mariadb的yum源有两,一个是阿里云,版本低,功能小

    命令:yum install mariadb-server mariadb

    2.mariadb官方的yum源,配置的方式

    方法:在/etc/yum.repos.d/目录下创建repo文件就是yum仓库

    1.创建一个mariadb.repo文件,写入如下内容

    vim /etc/yum.repos.d/MariaDB.repo

    2、添加repo仓库配置
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

    3.安装官方mariadb命令

    yum install MariaDB-server MariaDB-client -y

    4.启动mariadb相关命令

    mariadb数据库的相关命令是:

    systemctl start mariadb #启动MariaDB

    systemctl stop mariadb #停止MariaDB

    systemctl restart mariadb #重启MariaDB

    systemctl enable mariadb #设置开机启动

    5.安装好后进行初始化

    systemctl start mariadb

    image-20191227183117792

    6.配置mysql

    1.中文编码设置,编辑mysql配置文件/etc/my.cnf,下入以下内容

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    log-error=/var/log/mysqld.log
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    7.授权mysql进行配置

    远程连接设置哦设置所有库,所有表的所有权限,赋值权限给所有ip地址的root用户
    mysql > grant all privileges on *.* to root@'%' identified by 'password';
    grant all privileges on *.* to root@'%' identified by '111111'; #远程连接数据库密码111111
    #刷新权限
    flush privileges;

    8.mysql主从复制配置流程如下

    流程:主库复制写入,并写下日志,从库访问日志,重新执行sql语句写入

    192.168.226.128 主库

    192.168.226.129 从库

    环境准备,准备2台服务器,安装好2这个数据库

    1.主库配置

    编辑主库的/etc/my.cof写入如下配置,写下日志

      [mysqld]   server-id=1   log-bin=s18mysql-bin

    2.改了配置文件重启数据库

    systemctl restart mariadb

    3.master主库添加从库账号,用户远程复制数据的账户

    #创建用户 mysql > create user 'username'@'%' identified by 'password'; create user 'kevins'@'%' identified by 'kevins';

    #刷新权限 flush privileges;

    4.授予kevins这个账号,从库的身份
    grant replication slave on *.* to 'kevins'@'%';
    5.实现对主数据库锁表只读,防止数据写入,数据复制失败
    flush table with read lock;

    6.导出当前数据库

    mysqldump -uroot -p --all-databases > /opt/all.sql

    7.导出数据完毕后,解锁主库,恢复可写;

    unlock tables;

    8.将备份导出的数据scp至Slave数据库

    scp /data/all.sql root@192.168.178.130:/data/

    9.查看主库的状态,可以看到日志文件的名字

    show master status;

     

    slave从库配置

    1.修改从库的配置文件/etc/my.cnf

    写入配置:

    [mysqld]
    server-id=10

    2.导入主库的数据

    导入数据库第一种方式:mysql -uroot -p < /opt/all.sql

    导入第二种:

    1.先登录进入数据库

    2.执行:source /opt/all.sql

     

    3.此时主从数据库已经在同一个起始点,开始数据同步

    这是一段sql,在mysql中执行

    mysql > change master to master_host='192.168.178.129(主库地址)',
    master_user='kevins',   # 给予从库的账号
    master_password='kevins',# 给予从库的密码
    master_log_file='mysql-bin.000001',#访问日志的文件名
    master_log_pos=575;

    4.开启从库同步(在数据库中输入)

    start slave

    5.检测是否主从是否成功

    show slave statusG

    查看两个参数是否yes

    Slave_IO_Runing:yes

    Slave_SQL_Runing:yes

     

    6.此时已经可以在主库写入数据,从库实时写入

    7.配置mysql主从复制,读写分离

    修改从库/etc/my.cnf添加

    read-only=true

    只可以读的模式

    8.在主库上创建一个普通用户,在从库上进行登录,查看是否可以读写分离

    主库创建:create user "ywy"@"%" identified by "ywyacd";

    从库登录:mysql -uywy -p

    密码:ywyacd

    9.给这个普通用户查看数据库的权限

    grant select on *.* to ysy@"%";

     

  • 相关阅读:
    centos下 yum安装ngix
    [转]ORACLE函数大全
    Oracle的DML语言必备基础知识
    微信公众账号开发教程
    freemarker页面如何获取绝对路径basePath
    使用intellij的svn时提示出错: Can't use Subversion command line client: svn.Errors found while svn working copies detection.
    网站地址
    如何让tomcat不记录catalina.out这个日志文件
    在centos6.7用yum安装redis解决办法
    剑指 Offer 06. 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/wukai66/p/12142115.html
Copyright © 2011-2022 走看看