• centos7配置mysql5.7主主集群


    一、centos7安装mysql5.7

    1目录规划

    安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql

    2下载mysql 在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:

    执行如下命令:

    mkdir -p /data/software

    cd /data/software

    --建议:在windows上使用迅雷下载,上传到 /data/software目录下;

    直接linux下载命令:

    wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

    3解压压缩包到目标位置

    tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

    mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

    4创建数据仓库目录

    mkdir -p /data/mysql

    ls /data/

    5新建mysql用户、组及目录

    groupadd mysql ---新建一个msyql组

    useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell

    6改变目录属有者

    cd /usr/local/mysql

    pwd

    chown -R mysql .

    chgrp -R mysql .

    chown -R mysql /data/mysql

    7配置参数

    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

    此处需要注意记录生成的临时密码,yJsxro%lo90y

    bin/mysql_ssl_rsa_setup --datadir=/data/mysql

    8修改系统配置文件

    cd /usr/local/mysql/support-files

    cp -rf my-default.cnf /etc/my.cnf

    cp -rf mysql.server /etc/init.d/mysql

    vim /etc/init.d/mysql

    basedir=/usr/local/mysql

    datadir=/data/mysql

    9启动mysql

    ln -s /usr/local/mysql/bin/mysql /usr/bin

    /etc/init.d/mysql start

    mysql -hlocalhost -uroot -p

      --如果出现:-bash: mysql: command not found

      --就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行

    --输入第6步生成的临时密码

    --修改密码

    mysql> set password=password('GZml136');

    --设置root账户的host地址(修改了才可以远程连接)

    -------------------------------------------------------------------------------------------------------------------------

    注意:不知道什么原因 只要设置了密码带 'GZml136!#^这种带特殊符号的登录就会报错这种

    image

    直接在命令写密码也不行的

    mysql -uroot -pGZml136!#^

    ------------------------------------------------------------------------------------------------------------------------

    mysql> grant all privileges on *.* to 'root'@'%' identified by 'GZml136';

    mysql>flush privileges;

    mysql> use mysql;

    mysql> select host,user from user;

    exit

    测试使用新密码登录

    mysql -hlocalhost -uroot -pGZml136

    exit

    10添加系统路径

    vim /etc/profile

    export PATH=/usr/local/bin:$PATH

    export PATH=/usr/local/mysql/bin:$PATH

    source /etc/profile

    11配置mysql自动启动

    chmod 755 /etc/init.d/mysql

    chkconfig --add mysql

    chkconfig --level 345 mysql on

    本地Navicat连不上Linux虚拟机MySQL数据库问题

    systemctl restart msyql

    到这里mysql安装完毕--------------------------------如果要安装mysql主主等集群每台安装都相同


    扩展:

    注意:如果本地Navicat连不上Linux虚拟机MySQL数据库问题

    1、有没有赋予ip权限

    mysql -hlocalhost -uroot -pGZml136

    mysql> grant all privileges on . to root@"%" identified by "GZml136";

    这表示是给本地ip赋予了所有的权限,包括远程访问权限,%百分号表示允许任ip访问数据库。

    mysql> flush privileges;

    重新加载,,退出

    mysql>exit

    然后,重启数据库

    systemctl restart mysql



    二、开始配置mysql主主集群

    master : 192.168.1.50

    backup: 192.168.1.31

    1.配置集群master

    vim /etc/my.cnf  #开启二进制日志,设置id

    server-id = 1                    #backup这台设置2 这个选项有的注意1和2
    log-bin = mysql-bin           #这个选项有的
    binlog-ignore-db = mysql,information_schema      #忽略写入binlog日志的库
    auto-increment-increment = 2            #字段变化增量值
    auto-increment-offset = 1              #初始字段ID为1
    slave-skip-errors = all                      #忽略所有复制产生的错误

    如图:

    image

    systemctl restart mysql

    mysql –uroot –pGZml136

    Mysql>show master status;      会看到以下图,记住框出来的部分

    image

    mysql-bin.000001   154 这些不固定,现在要去到backup那台机上,因为master这台机下面的操作要用到对面的上面那图框出来的部分,当然backup那台机也会用到master机的这个图的log bin日志pos值位置 (mysql-bin.000001   154),总之都用这个指向对方

    Mysql>grant all privileges on *.* to root@"*" identified by 'GZml136!#^';     #赋予所有网段远程登录权限

    Mysql>flush privileges;       #刷新权限


    2.backup详细配置:

    vi /etc/my.cnf  #开启二进制日志,设置id

    [mysqld]
    server-id = 2                   #master这台设置1
    log-bin = mysql-bin
    binlog-ignore-db = mysql,information_schema      #忽略写入binlog日志的库
    auto-increment-increment = 2            #字段变化增量值
    auto-increment-offset = 1              #初始字段ID为1
    slave-skip-errors = all                      #忽略所有复制产生的错误

    systemctl restart mysql

    mysql –uroot –pGZml136

    Mysql>show master status;  #获取log bin日志pos值位置,master这台机要根据这个来指向backup来获取信息

    获取的结果是:

    mysql-bin.000001   154

    mysql> change  master to
         -> master_host='192.168.1.50',
         -> master_user='root',
         -> master_password='GZml136',
         -> master_log_file='mysql-bin.000001',
         -> master_log_pos=154;

    mysql> start  slave;

    GZml136!#^

    3.master详细配置继续:

    mysql> change  master to
         -> master_host='192.168.1.31',
         -> master_user='root',
         -> master_password='GZml136',
         -> master_log_file='mysql-bin.000001',
         -> master_log_pos=154;

    mysql> start  slave;        #启动同步

    mysql> exit

    最后:在master backup两台机分别看状态

    Mysql>show slave status\G          #两台机都执行去看

    #主主同步配置完毕,查看同步状态Slave_IO和Slave_SQL是YES说明主主同步成功

    image




    4.数据库同步测试:

    在master(192.168.1.50)创建个 data_linkapp 数据库

       mysql>create database data_linkapp;

    去到backup(192.168.1.31)这台机看,master新建的data_linkapp 数据库会同步到backup(192.168.1.31)这台机

    mysql> show databases;

    image

  • 相关阅读:
    事务处理语言(TCL)
    SQL,T-SQL简介
    centos 8 集群Linux环境搭建
    graphviz 的使用教程
    pyttsx3 的使用教程
    python 连接 SQL Server 数据库(使用 pymssql 库)
    python 连接 SQL Server 数据库(使用 pyodbc 库)
    C++注释规范
    IP分配及网段划分
    关于对象的浅度拷贝和深度拷贝
  • 原文地址:https://www.cnblogs.com/pengrj/p/15720536.html
Copyright © 2020-2023  润新知