centos7 mysql5.7 AB 复制 一主多从架构,详细说明(上)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: centos7 mysql5.7 AB 复制 一主多从架构,详细说明

MySQL AB 复制


一主多从架构

节点

系统

mysql版本

ip

master

centos:7

5.7

192.168.1.237

slave

centos:7

5.7

192.168.1.238


作用:客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平

1675154326184.jpg


两台主机都操作


安装mysql数据库

解压mysql  tar文件

tar zxvf  mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz


将解压的移动到   /usr/local/mysql 目录      

mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql


添加系统mysql组和mysql用户

groupadd mysql
useradd -r -g mysql mysql (添加完成后可用id mysql查看)
cd /usr/local/mysql


修改当前目录拥有者为mysql用户

chown -R mysql:mysql ./

初始化数据库

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

此时生成了临时密码(下图有)

1675154410114.jpg

如果报这个错

bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解决方法:yum install -y libaio numactl.x86_64
  //安装后在初始化就OK了

添加开机启动    

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

修改  vi /etc/init.d/mysqld


添加路径 在46行  

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

1675154422480.jpg

#chkconfig --add mysqld
#systemctl daemon-reload   (刷新开机启动配置)


配置文件

vi /etc/my.cnf
[mysqld]
#可以免密码登录
#skip-grant-tables
###############################基础设置#####################################
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
lower_case_table_names=1    #1代表关闭大小写区别 0代表开启大小写
default_storage_engine=InnoDB   #存储引擎  lnnoDB
character_set_server=utf8
init_connect='SET NAMES utf8'



参数参考:(下面加粗部分无需操作)


配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:


(若/etc/没有my.cnf文件,可手动添加一个)

#Vi /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'


修改端口号、开放端口

#vi /etc/my.cnf

添加port=3306

Mysql默认是3306端口,若需要更改端口,需要先把seLinux关闭运行命令:setenforce 0


重新启动mysql服务使配置生效:

#systemctl restart mysqld


添加远程用户访问


查询下当前访问信息

mysql> select Host,User from mysql.user;


创建一个Dwz用户 任何地址都可以登录。密码Dwz123.

mysql>grant all privileges on *.* to 'Dwz'@'%'identified by 'Dwz123.' with grant option;

all代表接受所有操作,比如 select,insert,delete....; *.* 代表所有库下面的所有表;% 代表这个用户允许从任何地方登录;为了安全期间,这个%可以替换为你允许的ip地址;


然后刷新mysql用户权限相关表;

mysql>flush privileges ;

开启防火墙的情况下-设置远程端口

#firewall-cmd --zone=public --add-port=3306/tcp --permanent

端口配置生效   #firewall-cmd --reload

success


默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log//var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid



查询数据库是否启动

#systemctl  status mysqld.service


查询端口号是否启动

netstat -apn|grep 3306
tcp6       0      0 :::3306       :::*         LISTEN      19960/mysqld
unix  3      [ ]       STREAM     CONNECTED     33061    1/systemd


刷新数据库

flush privileges;

其他liunx主机远程连接本机mysql数据库(其他主机已安装mysql):

mysql -u Dwz -p -h 192.168.208.134

*Dwz之前创建好的用户名


192.168.208.134 是要远程的ip


启动数据库

systemctl start mysql

修改root本地登录密码

1675154445034.jpg

先把mysql的命令设置为环境变量


/etc/profile中添加语句

vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
service mysqld start
#mysql -uroot -p


输入密码:

1675154466963.jpg

mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)


重启数据库后密码生效。



方法二:


该方法先修改mysql配置文件使其可以无密码登录,跳过密码验证一步


修改/etc/my.cnf

#vi /etc/my.cnf

在[mysqld]下添加skip-grant-tables如图

1675154476280.jpg

在修改密码方法二修改配置文件跳过密码的情况下


#Mysql -uroot -p

1675154489288.jpg

也会出现这个提示,直接回车即可进入数据库

mysql> use mysql
Database changed!
mysql> update user set password=password('自定义密码') where user='root';

提示mysql>  update user set password=password('VRGV2019.') where user='root';

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

执行:

Mysql>update user set authentication_string=password('123456') where user='root';
systemctl restart mysqld

***********重启数据库后新密码生效


再把配置文件改回去,重新启动数据库


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
20天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
91 3
Mysql高可用架构方案
|
1月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
126 1
|
16天前
|
SQL 存储 缓存
【赵渝强老师】MySQL的体系架构
本文介绍了MySQL的体系架构,包括Server层的7个主要组件(Connectors、Connection Pool、Management Service & Utilities、SQL Interface、Parser、Optimizer、Query Caches & Buffers)及其作用,以及存储引擎层的支持情况,重点介绍了InnoDB存储引擎。文中还提供了相关图片和视频讲解。
【赵渝强老师】MySQL的体系架构
|
23天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
65 3
|
24天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
42 2
|
26天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
77 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
239 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
60 3
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
107 64
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
116 61
下一篇
无影云桌面