Linux 下MySQL的安装及MySQL数据库主从复制的实现

Linux下MySQL的安装

1.准备一台Linux服务器

云服务器或者虚拟机都可以;

Linux的版本为CentOS7;

2.下载Linux版MySQL安装包

MySQL :: Download MySQL Community Server (Archived Versions)

选择上图第一个BPM Bundle 下载

3.将MySQL安装包上传到Linux并解压。

使用FinalShell 连接到Linux服务器,上传安装包。

可以创建一个mysql目录,将文件解压到这个目录中

mkdir mysql

tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C mysql 

4.安装MySQL的安装包

安装之前我们需要检查一下CentOS 是否有一个mariadb 的库,使用管道筛选一下,如果有将其卸载。

#管道筛选
rpm -qa|grep mariadb
#忽略依赖卸载mariadb 
rpm -e --nodeps mariadb-libs  

开始安装MySQL文件(因为包与包之间有着依赖关系,必须按照以下顺序安装)

rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm 

rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm 

rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm

rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm

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

#初始化
mysqld --initialize --console 

chown -R mysql:mysql /var/lib/mysql/

初始化后,我们启动MySQL

systemctl start mysqld

在我们初始化的时候,程序会给我们设置一个临时的密码,我们需要查看临时密码才能进入MySQL

cat /var/log/mysqld.log|grep localhost 

root@localhost:后的内容即为临时密码,使用临时密码登录MySQL后,可以将密码进行修改。

MySQL安装完成

MySQL的主从复制

主从复制是指将主数据库的DDL和DML操作通过二进制日志传到库服务器中,然后在从库上对这些日志重新执行,从而使得从库和主库的数据保持同步。

MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。

1.准备两台服务器

我将192.168.31.128这台服务器作为master,将192.168.31.130这台服务器作为slave 。

这两台服务器都需要安装MySQL,因为MySQL默认端口号为3306,所以我们需要开启防火墙中的3306端口号。测试阶段建议将防火墙关闭。

开放指定的3306端口号:
firewall-cmd --zone=public --add-port=3306/tcp-permanent
firewall-cmd -reload

关闭服务器防火墙:
systemctl stop firewalld 
systemctl disable firewalld

检查两台服务器MySQL的状态,确保运行着。

2.主库配置

修改配置文件 /etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一
server-id=1
#是否只读,1代表只读,0代表读写
read-only=0
#忽略的数值,指不需要同步的数据库
#binlog-ignore-db=mysql 
#指定同步的数据库
#binlog-do-db=db01

配置完成后重启MySQL服务器

systemctl   restart mysql

登录mysql,创建远程连接的账号,并授予主从复制权限

#创建mydata用户,并设置密码,该用户可在任意主机连接MySQL服务
create user 'mydata'@'%' identified with mysql_native_password by 'Root@123456';
#为'mydata'@'%'用户分配主从复制权限
grant replication slave on *.* to 'mydata'@'%';

通过show master status;指令,查看二进制日志坐标

file:从哪个日志文件开始推送日志文件(如图我当前是写到了binlog.00009这个文件了)

position:从哪个位置开始推送日志

3.从库配置

修改配置文件 /etc/my.cnf(使用vim编辑器)

#mysql服务ID,保证整个集群环境中唯一
server-id=2
#是否只读,1代表只读,0代表读写
read-only=1

登录mysql,设置主库配置

CHANGE REPLICATION SOURCE TO SOURCE_HOST='xxx.xxx',SOURCE_USER='xxx',SOURCE_PASSWORD='XXX',SOURCE_LOG_FILE='XXX',SOURCE_LOG_POS=XXX;

主库配置后,在从库启动同步操作

start replica;

#查看主从同步状态
show replica status;

由于表比较大,展示出的数据比较乱,我们可以使用show replica status\G;把每一列数据转换成每一行进行展示。

这时候我们可以看到主从复制的状态,关联的主库IP地址,端口号,用户名,中继日志位置等信息,我们需要重点关注Replica_IO_Running和Replica_SQL_Running这两个状态,如果这两个为yes则说明主从复制是正常的。

4.测试

 在主库创建一个表并插入数据

在从库中查询数据,验证主从是否同步

从库同步获得相同的数据,主从复制完成。

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值