• mysql主从搭建


    1.安装mysql

    首先查看是否存在mysql

    rpm -qa | grep -i mysql 
    
    yum -y remove mysql-libs*  

    依赖:

    yum -y install net-tools autoconf
    
    rpm -e mariadb-libs-1:5.5.56-2.el7.x86_64  --nodeps

    1.1 创建用户

    groupadd mysql
    
    useradd -r -g mysql mysql

    1.2 解压

    tar -xvf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar

    1.3 安装client

    rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-devel-5.7.22-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm

    1.4 安装server

    rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm

    1.5 创建数据目录

    mkdir -p /data/mysqldata
    
    chown mysql.mysql /data/mysqldata
    
     
    
    mkdir /var/log/mysql
    
    chown mysql.mysql /var/log/mysql

     

    1.6 修改主服务器配置

    vim /etc/my.cnf  
    
     
    
    [client]
    
    port       = 3306
    
    socket     = /data/mysqldata/mysqld.sock
    
    default-character-set = utf8
    
     
    
    [mysqld_safe]
    
    socket     =/data/mysqldata/mysqld.sock
    
    nice       = 0
    
     
    
    [mysqld]
    
    user       = mysql
    
    pid-file   = /data/mysqldata/mysqld.pid
    
    socket     = /data/mysqldata/mysqld.sock
    
    port       = 3306
    
    basedir       = /usr
    
    datadir       = /data/mysqldata
    
    tmpdir     = /tmp
    
    lc-messages-dir   = /usr/share/mysql
    
    skip-external-locking
    
    max_allowed_packet   = 16M
    
    thread_stack      = 192K
    
    thread_cache_size       = 8
    
    max_connections        = 200
    
    query_cache_limit = 1M
    
    query_cache_size        = 16M
    
    log_error = /var/log/mysql/error.log
    
    expire_logs_days  = 10
    
    max_binlog_size         = 100M
    
    character-set-server=utf8
    
     
    
    server-id = 1
    
    log_bin = /var/log/mysql/mysql-bin.log
    
    sync_binlog=1
    
    binlog_format=mixed
    
     
    
    lower_case_table_names = 1
    
    innodb_buffer_pool_size=1G
    
     
    
     
    
    [mysqldump]
    
    quick
    
    quote-names
    
    max_allowed_packet   = 16M
    
     
    
    [mysql]
    
    default-character-set=utf8

     

    1.7 修改从服务器配置

    vim /etc/my.cnf   在【mysqld】添加
    
     
    
    [client]
    
    port    = 3306
    
    socket      = /data/mysqldata/mysqld.sock
    
    default-character-set = utf8
    
     
    
    [mysqld_safe]
    
    socket      = /data/mysqldata/mysqld.sock
    
    nice    = 0
    
     
    
    [mysqld]
    
    user    = mysql
    
    pid-file    = /data/mysqldata/mysqld.pid
    
    socket      = /data/mysqldata/mysqld.sock
    
    port    = 3306
    
    basedir     = /usr
    
    datadir     = /data/mysqldata
    
    tmpdir      = /tmp
    
    lc-messages-dir    = /usr/share/mysql
    
    skip-external-locking
    
    max_allowed_packet = 16M
    
    thread_stack       = 192K
    
    thread_cache_size       = 8
    
     
    
    #myisam-recover         = BACKUP
    
    max_connections        = 200
    
     
    
    query_cache_limit  = 1M
    
    query_cache_size        = 16M
    
     
    
    log_error = /var/log/mysql/error.log
    
     
    
    expire_logs_days   = 10
    
    max_binlog_size         = 100M
    
     
    
    character-set-server=utf8
    
    lower_case_table_names = 1
    
     
    
    server-id=2
    
    log-bin=/var/log/mysql/mysql-bin.log
    
    innodb_buffer_pool_size=1G
    
     
    
     
    
    [mysqldump]
    
    quick
    
    quote-names
    
    max_allowed_packet = 16M
    
     
    
    [mysql]
    
    default-character-set=utf8

     

    1.8 初始化数据库

    mysqld --initialize
    
    service mysqld start

    1.9 防火墙检查

    firewall-cmd --state 
    
    #防火墙列表
    firewall-cmd --list-all
    
    #防火墙开放3306端口
    firewall-cmd --permanent --add-port=3306/tcp
    
    # 防火墙重新加载配置 firewall
    -cmd –reload

    1.10 selinux检查(主)

     
    
    # 输入命令:
    
    getenforce
    
     
    
    # 如果不是Permissive,做已下修改
    
    setenforce 0
    
     
    
    vim /etc/selinux/config
    
     
    
    SELINUX= Permissive

    1.11 修改密码

    grep 'temporary password' /var/log/mysql/error.log
    
    mysql -uroot -p'UA1zL8P9QzNJBcs1'
    
    SET PASSWORD = PASSWORD('xxxx');
    
    show variables like 'datadir';

    2. 主从搭建

    2.1 登录主服务器mysql

    GRANT REPLICATION SLAVE ON *.* TO 'systop'@'172.31.10.%' IDENTIFIED BY 'systop';
    
     
    
    FLUSH TABLES WITH READ LOCK;
    
     
    
    SHOW MASTER STATUS;
    
    记下:
    
    mysql> SHOW MASTER STATUS;
    
    +------------------+----------+--------------+------------------+-------------------+
    
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    
    +------------------+----------+--------------+------------------+-------------------+
    
    | mysql-bin.000004 |      693 |              |                  |                   |
    
    +------------------+----------+-----------

    2.2 导出主mysql数据

    mysqldump -uroot -p -P3306 --all-databases  --triggers --routines --events >mysqlall.sql

    2.3 解锁

    UNLOCK TABLES;

    2.4 将数据文件远程拷贝到从服务器

    scp mysqlall.sql  192.168.X.X:/tmp/

    2.5 从服务器导入数据

    mysql -uroot -p -h127.0.0.1 -P3306  <  /tmp/mysqlall.sql

    2.6 从服务器执行

    CHANGE MASTER TO MASTER_HOST='172.31.10.13', MASTER_USER='systop',MASTER_PASSWORD='systop',MASTER_LOG_FILE=' mysql-bin.000004',MASTER_LOG_POS=693;
    

    2.7 查看同步状态

    start slave;
    
     
    
    show slave status G;
    
     
    
    查看:
    
    Slave_IO_Running: Yes
    
       Slave_SQL_Running: Yes
    
    都显示yes表示启动正常
  • 相关阅读:
    Websocket --socket.io的用法
    Vuex中mapState的用法
    vue中关于computed的一点理解
    webuploader大文件分片,多线程总结
    pdf的使用遇到的问题
    单文件WebUploader做大文件的分块和断点续传
    webUploader大文件断点续传学习心得 多文件
    iframe子页面与父页面元素的访问以及js变量的访问
    pwa 集合
    mpvue 转小程序实践总结
  • 原文地址:https://www.cnblogs.com/xiaolinstudy/p/10069069.html
Copyright © 2020-2023  润新知