一文教你在 CentOS7 下安装 MySQL 及搭建主从复制

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 一篇文章,教你搞定 MySQL 主从复制。

01、CentOS7 下安装 MySQL

1,wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2,rpm -ivh mysql-community-release-el7-5.noarch.rpm
3,yum install mysql-community-server
4,service mysqld restart(此为重启MySQL服务命令)
5,mysql -uroot -p(此为进入MySQL命令)

至此,就算安装完毕。刚安装上 MySQL 时,是没有密码的,所以运行第 5 个命令之后,直接回车,就能进入到 MySQL 界面,如图,即表示成功


25.jpg

02、MySQL 修改密码

没有密码就能进入 MySQL ,安全性肯定是不能保证的,所以接下来介绍一下,如何修改密码。运行以下命令即可(这里以将密码改为 root 为例):

use mysql;
update user set password=password("root") where user='root';
flush privileges;
exit;

检测密码是否成功,重新进入 MySQL :

mysql -uroot -p

输入root之后,能看到如下界面,即为成功:

26.jpg

03、MySQL搭建主从复制

写在前面:搭建主从复制的前提是,都安装好了 MySQL 。这篇文章以 192.168.243.133 为主,192.168.243.132 为从为例,来演示搭建过程。同时请注意,MySQL 密码为 root

  1. 133 为主,132 为从,从 133 上面,进入 MySQL 给 132 授权:
grant replication slave on *.* to 'root'@'192.168.243.132' identified by 'root';

参数说明:

  • 用户名:root
  • 密码:root
  • 意为:允许192.168.243.132使用用户名为root,密码为root访问133

成功效果如图:

27.jpg

  1. 开启 133 的 binarylog

MySQL Binary Log 也就是常说的 bin-log  ,是 mysql 执行改动产生的二进制日志文件,其主要作用有两个:

  • 数据恢复
  • 主从数据库。用于 slave 端执行增删改,保持与 master 同步。
编辑my.cnf这个配置文件:vi /etc/my.cnf
将以下内容保存至该配置文件中:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id=1
log-bin=mysql-bin
expire_logs_days= 7
max_binlog_size= 100m                       //binlog每个日志文件大小
binlog_cache_size= 4m                        //binlog缓存大小
max_binlog_cache_size= 512m                     //最大binlog缓存大小
binlog-do-db=401_test
lower_case_table_names=1

具体如图:

28.jpg

进入 mysql ,查看 binary 是否开启成功:

29.jpg

  1. 133 和 132 上面分别创建数据库。此处以 401_test (如果数据库和我的不同,则主从的 my.cnf 上面相对应的数据库名称都要更改)为例
创建数据库:create database 401_test;
  1. 编辑 132 的 my.cnf 文件:
编辑my.cnf配置文件:vi /etc/my.cnf
将以下内容保存至该配置文件中:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin
binlog_format=mixed
server-id=2
replicate-do-db=401_test

与 133 稍微有些不同,请注意。效果如图:

30.jpg

  1. 查看 133 的 binary 日志位置,这在后续配置 132 时会用到。连接 MySQL ,使用命令查看 binary
show master status\G

31.jpg

具体解析:
File:日志名称
Position:日志偏移量
Binlog_Do_DB:记录日志的库
  1. 开启 132 的同步:在 132 上面运行以下命令:
CHANGE MASTER TO
    -> MASTER_HOST='192.168.243.133',
    -> MASTER_USER='root',
    -> MASTER_PASSWORD='root',
    -> MASTER_LOG_FILE='mysql-bin.000002',
    -> MASTER_LOG_POS=120;

具体如图:

32.jpg

HOST:主节点ip
USER: 133 授权给 132 的用户名
PASSWORD:授权给 132 的密码
MASTER_LOG_FILE: 133 的日志名称
MASTER_LOG_POS:日志偏移量,需要和 133 的一样
如果忘记了,请回看第 5 步
  1. 查看 132 的 slave 线程是否开启:
show slave status\G

33.jpg

Slave_IO_Running为读取master的binaryLog的线程 Slave_SQL_Running为执行SQL的线程 这两个线程必须都为YES才可以实现主从复制 至此主从复制就搭建完了。

04、MySQL搭建互为主从

在以上配置的基础之上,将 132 作为 master , 133 作为 slave 进行再次配置。

  1. 在 132 上面连接 MySQL 之后,为 133 授权
grant replication slave on *.* to 'root'@'192.168.243.133' identified by 'root';
  1. $查看 132 的 binarylog
show master status;

34.jpg

  1. 开启 133 的同步(这里的步骤和 132 配置相同,我就不在这里展示了,如果忘记了,可以往上面再翻翻看)
  2. 查看 133 slave 的状态:
show slave status\G;

35.jpg

可能出现的错误:

36.jpg

解决办法:出现上图的错误就先将 slave 停掉,再操作一遍,使用命令: STOP SLAVE ,(此处命令必须为大写) 开启完同步之后需要打开 slave ,使用命令: START SLAVE (此处命令必须为大写)。至此,搭建互为主从复制结束。

05、常用到的命令

在这个过程中有几个命令是常用到的,来总结一下(#后面为注释内容):

进入 mysql :mysql -uroot -p
重启 mysql :systemctl restart mysql或service mysqld restart
查看 slave 线程:show slave status\G
mysql 授权命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
#参数说明:
#第一个 root 是 mysql 的用户名
#第二个 root 是 mysql 的密码
# %表示所有机器都可以通过用户名 root ,密码 root 访问该 mysql
flush privileges ;  #使修改生效
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
1月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
381 69
|
1月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
195 78
|
2月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
165 80
|
15天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
87 10
|
27天前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
153 0
|
2月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
214 2
|
3月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
192 18
|
3月前
|
安全 Linux
安装EPEL Repository Centos 7.9
记住,行走在Linux的世界,把“学习”作为你不可或缺的随身宝典。今天你学会了如何将EPEL这座外来的宝库接入你的系统,明天,你或许就能在这座宝库中发现一款能领你走向Linux大师之路的神器。
160 5
|
4月前
|
Kubernetes Linux 开发者
在CentOS 7.8上使用kubeadm安装k8s 1.26
至此,你已经在CentOS 7.8上使用kubeadm成功安装了k8s 1.26。你可以通过输入 `kubectl get nodes`来查看节点状态,如果显示为Ready,那么恭喜你,你的Kubernetes集群已经准备好了。
197 23