MySQL主从环境搭建

本文介绍如何在 CentOS 7.3 上安装 MySQL 5.7 并进行主从配置。包括卸载系统自带 MySQL 和 Mariadb,下载并安装 MySQL 5.7 RPM 包,配置 my.cnf 文件,初始化 MySQL,设置 root 密码,创建复制账号及配置主从服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:下载rpm包

mysql官网下载:http://dev.mysql.com/downloads/mysql/ 
如果网速不好,可以点链接下载指定版本:http://mirrors.sohu.com/mysql/MySQL-5.7/ 
我用的是CentOS7.3,下载的是: mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar文件

第二步:MySQL安装

  1. 检查系统自带的MySQL及相关RPM包是否安装,如有安装,需要卸载:

    rpm -qa | grep -i mysql

    卸载MySQL的RPM包:
    rpm -ev --nodeps qt-mysql-4.8.5-13.el7.x86_64
    rpm -ev --nodeps qt5-qtbase-mysql-5.6.1-10.el7.x86_64
    rpm -ev --nodeps qt3-MySQL-3.3.8b-51.el7.x86_64
    yum -y remove mysql

  2. 检查系统自带的mariadb及相关RPM包是否安装,如有安装,需要卸载:
    rpm -qa | grep -i mariadb

    卸载MySQL的RPM包:
    rpm -ev --nodeps mariadb-libs-5.5.52-1.el7.x86_64
    rpm -ev --nodeps mariadb-devel-5.5.52-1.el7.x86_64
    yum -y remove mariadb
  3. 解压tar文件,并安装
    tar -xvf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
    解压完成,然后依次执行以下命令安装(注意先后顺序):
    rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
    到此,mysql已经安装完成
  4. 初始化(这里是以root身份执行的):
    配置/etc/my.cnf,添加:sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  (5.7需要配置,否则报错1055)
    cd /usr/bin/
    mysqld --initialize --user=mysql
    注:使用–initialize会为root账户生成一个随机的初始密码,查看root密码:
    cat /var/log/mysqld.log
  5. 修改root密码
    A、启动MySQL
    service mysqld start
    B、进入MySQL数据库:
    mysql -u root -p'NhwIKlStU9!p'
    C、设置密码复杂度

    mysql> set global validate_password_policy=0; 
    Query OK, 0 rows affected (0.05 sec) 
    mysql> set global validate_password_mixed_case_count=0; 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> set global validate_password_number_count=3; 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> set global validate_password_special_char_count=0; 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> set global validate_password_length=3; 
    Query OK, 0 rows affected (0.00 sec)

    D、修改MySQL密码:
    mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    Query OK, 0 rows affected (0.00 sec)

  6. 其它命令
    启动:service mysqld start或systemctl start mysqld.service
    停止:service mysqld stop或systemctl stop mysqld.service
    重启:service mysqld restart或systemctl restart mysqld.service
  7. 两台服务器都按照以上步骤安装MySQL

第三步:主从配置

演示用两台全新MySql服务器:
mysql1:10.100.96.140 (主)
mysql2:10.100.96.141 (从)
配置主从,步骤如下:

  1. 在mysql1上创建复制账号 repl
    CREATE USER 'repl'@'10.100.96.%' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'10.100.96.%';

  2. 在mysql1上编辑 /etc/my.cnf 文件,增加以下配置:
    log_bin=mysql-bin
    server_id=140

    开启二进制日志和设置server_id(只能是数字,此处用IP地址后两位),然后重启mysqld,

  3. 获取File 和 Position
    登录mysql1 root账号,执行“SHOW MASTER STATUS;”语句

    注:这里的File和Position的值要保存起来,后面从数据库执行需要用到
  4. mysql2上编辑 /etc/my.cnf 文件,增加以下配置:
    log_bin=mysql-bin
    server_id=141
    relay_log=/var/lib/mysql/mysql-relay-bin
    log_slave_updates=1
    read_only=1
    配置完成后,重启mysqld。如果采用“主-主”结构,read_only为可选配置

  5. 配置主从连接
    登录mysql2 root账号,执行以下语句,使得mysql2连接到mysql1,并重放其二进制日志
    CHANGE MASTER TO MASTER_HOST='10.100.96.138',
    MASTER_USER='repl',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=154;
    执行启动复杂命令:START SLAVE;
    执行成功后,再输入“SHOW SLAVE STATUS\G;”检查配置是否正确,如下所示:

    如果Slave_IO_State 为空,Slave_IO_Running 和 Slave_SQL_Running 均为 NO,表示复制并未运

  6. 常见处理:
    清除连接:reset slave all;
    如果主库重启,需执行1)stop slave;2)reset slave; 然后重新执行第5步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值