zoukankan      html  css  js  c++  java
  • centos7部署mysql5.7一主多从

    /usr/share/mysql/charsets/
    服务器
    ip
    操作系统
    mysql
    Mysql_master
    192.168.188.11
    centos7
    5.7
    Mysql_slave1
    192.168.188.12
    centos7
    5.7
    Mysql_slave2
    192.168.188.13
    centos7
    5.7
    一、安装mysql5.7
    1、配置YUM源
    # 下载mysql源安装包 shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
    # 安装mysql源 shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm
    检查mysql源是否安装成功
    shell> yum repolist enabled | grep "mysql.*-community.*"
    2、安装MySQL
    shell> yum install mysql-community-server
    3、启动MySQL服务
    shell> systemctl start mysqld
    查看MySQL的启动状态
    shell> systemctl status mysqld
    4、开机启动
    shell> systemctl enable mysqld shell> systemctl daemon-reload
    5、修改root本地登录密码
    mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
    shell> grep 'temporary password' /var/log/mysqld.log
    shell> mysql -u root -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    或者
    mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
    注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:
    6、登录mysql
    mysql -u root -p
    7、设置允许访问的ip
    如果你想允许用户root从ip为192.168.188.62的主机连接到mysql服务器,并使用root作为密码
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.188.62'IDENTIFIED BY 'password' WITH GRANT OPTION;
    8、刷新
    flush privileges;
     
    9、防火墙开启
    //1、开启端口3306
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    //2、重启防火墙
    firewall-cmd --reload
    //3、查看已经开放的端口:
    firewall-cmd --list-ports
     
    以上安装需要在每台服务器上进行!!!
     
    Master的配置
    1、配置内容
    在/etc/my.cnf文件中添加以下配置项
    # 设置server_id,一般设置成IP
    server_id=18811
    # 需要备份的数据库
    binlog-do-db=dfs
    # 不需要备份的数据库
    binlog-ignore-db=mysql
    binlog-ignore-db=information_schema
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys
    # 开启二进制日志功能,名字自己起,主服务器必须开启
    log-bin=master-bin
    2、重启mysql
    service mysqld restart
    3、登陆mysql数据库,设置用于从数据库登陆的远程连接
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.188.12'IDENTIFIED BY 'password' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.188.13'IDENTIFIED BY 'password' WITH GRANT OPTION;
    flush privileges;
    4、查看是否设置成功
    mysql> select user,host from mysql.user;
    4、查看master状态
    mysql> show master statusG;
    注意File,Position两个字段,一会配置从服务器要用到
    5、想要重新配置master,并清零position,可以使用下边命令。
    mysql> reset master;
    Slave1的配置
    1、配置内容
    在/etc/my.cnf文件中添加以下配置项
    # 设置server_id,一般设置成IP
    server_id=18812
    # 需要备份的数据库
    binlog-do-db=dfs
    # 不需要备份的数据库
    binlog-ignore-db=mysql
    binlog-ignore-db=information_schema
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys
    # 开启二进制日志功能,也可以不开启,如果这个slave不作为master
    log-bin=slave1-bin
     
    2、重启mysql,登陆mysql,关联master
    service mysqld restart
     
    先停止(每次设置slave都需要先停止)
    mysql> stop slave;
     
    设置slave
    mysql> change master to master_host='192.168.188.11', master_user='root', master_password='password',master_log_file='master-bin.000002', master_log_pos=928;
     
    注意此处的master_log_file,master_log_pos分别是master中File,Position两个字段的值。
     
    3、查看slave的状态
    mysql> show slave statusG;
     
    开启slave
    mysql> start slave;
    再次查看状态,应该变成yes
    mysql> show slave statusG;
    Slave2的配置
    首先你需要知道Slave的配置和Slave1的配置方式是完全相同的,只一些配置的内容不同
    1、配置内容
    在/etc/my.cnf文件中添加以下配置项
    # 设置server_id,一般设置成IP
    server_id=18813
    # 需要备份的数据库
    binlog-do-db=dfs
    # 不需要备份的数据库
    binlog-ignore-db=mysql
    binlog-ignore-db=information_schema
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys
    # 开启二进制日志功能,也可以不开启,如果这个slave不作为master
    log-bin=slave2-bin
    2、重启mysql,登陆mysql,关联master
    service mysqld restart
     
    先停止(每次设置slave都需要先停止)
    mysql> stop slave;
     
    设置slave
    mysql> change master to master_host='192.168.188.11', master_user='root', master_password='password',master_log_file='master-bin.000002', master_log_pos=928;
     
    注意此处的master_log_file,master_log_pos分别是master中File,Position两个字段的值。
     
    3、查看slave的状态
    mysql> show slave statusG;
     
    开启slave
    mysql> start slave;
    再次查看状态,应该变成yes
    mysql> show slave statusG;
     
    这样就已经可以了,在主服务器测试下,所有操作都会同步到从服务器
  • 相关阅读:
    【php数组函数序列】之array_values()
    Mysql数据库编码问题3(修改数据库,表,字段编码为utf8)
    framework fckedit / KingEditor
    Linux + JDK/TOMCAT/Dia(Planner)/eclipse
    proxyServer squid / varnish / apache traffic server / ATS
    framework SiteMesh
    Linux + BusyBox
    对链表的插入操作
    链表原理
    链表的删除操作
  • 原文地址:https://www.cnblogs.com/feigao/p/10999219.html
Copyright © 2011-2022 走看看