052-linux安装MySQL数据库-保姆级

linux安装MySQL数据库

1.mysql数据库安装

1.1.安装环境

操作系统版本:CentOS-stream9

数据库版本:mysql-8.0.4

服务名称 服务器IP
mysql-master 192.168.6.137
shell 复制代码
[root@mysql-master ~]# ip a


关闭安全限制

shell 复制代码
[root@mysql-master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@mysql-master ~]# setenforce 0
[root@mysql-master ~]# systemctl stop firewalld
[root@mysql-master ~]# systemctl disable firewalld

1.2.安装部署

安装yum包

shell 复制代码
[root@mysql-master ~]# yum install epel-release -y


安装数据库所需依赖环境

shell 复制代码
[root@mysql-master ~]# yum install pv gcc libxml2 libxml2-devel net-snmp net-snmp-devel libevent libevent-devel curl curl-devel java-devel yum-utils -y

安装 REMI 软件仓库的配置文件

shell 复制代码
[root@mysql-master ~]# yum install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

从 MySQL 官方软件仓库下载 MySQL 8.0 社区版的软件仓库配置文件

shell 复制代码
[root@mysql-master ~]# wget https://repo.mysql.com/mysql80-community-release-el9-1.noarch.rpm

安装MySQL 8.0 社区版的软件仓库配置文件

shell 复制代码
[root@mysql-master ~]# rpm -Uvh mysql80-community-release-el9-1.noarch.rpm


安装 MySQL 社区版的开发库

shell 复制代码
[root@mysql-master ~]# yum install mysql-community-devel --nogpgcheck -y

安装 MySQL 社区版的服务器软件

shell 复制代码
[root@mysql-master ~]# yum install mysql-community-server --nogpgcheck -y

启动数据库

shell 复制代码
[root@mysql-master ~]# systemctl start mysqld
[root@mysql-master ~]# systemctl enable mysqld

查看数据库初始密码

shell 复制代码
[root@mysql-master ~]# cat /var/log/mysqld.log | grep password

设置数据库远程登陆

shell 复制代码
[root@mysql-master ~]# mysql> use mysql;
[root@mysql-master ~]# mysql> update user set Host='%' where User='root';
[root@mysql-master ~]# mysql> flush privileges;

更新root密码

shell 复制代码
[root@mysql-master ~]# mysql> alter user 'root'@'localhost' identified by 'Admin@123321';
[root@mysql-master ~]# mysql> flush privileges;

2.mysql数据库主备实现

2.1.主备配置

2.1.1.前置环境准备

服务名称 服务器IP 角色 数据库版本
mysql-01 192.168.6.136 master mysql-8.0.4
mysql-02 192.168.6.135 slave mysql-8.0.4

1、确保2台数据库之间的网络是互通的

2、配置期间不能有数据写入

2.1.2.master数据库服务器配置

编辑数据库配置文件

shell 复制代码
vi /etc/my.cnf

cat  >> /etc/my.cnf <<EOF 
#服务器 id,随意,但要唯一
server-id = 1  
#二进制文件存放路径
log-bin = mysql-bin 
#参数用于排除自带的数据库。  
binlog-ignore-db = mysql 
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW 
EOF

创建同步用户

shell 复制代码
use mysql;
#创建用户
create user 'user_sync'@'%' identified by 'mypassword';
#授权账号复制权限
grant replication slave on *.* to 'user_sync'@'%';
#刷新配置
FLUSH PRIVILEGES;

输出File 和 Position 值

shell 复制代码
show master status;
#记下输出中的 File 和 Position 值,后续在从库上使用
| mysql-bin.000001 |      157 | 

2.1.3.slave数据库服务器配置

编辑数据库配置文件

shell 复制代码
cat >>/etc/my.cnf <<EOF

server-id = 2
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin 
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin 
#不同步相关的库
replicate-ignore-db = mysql 
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
EOF

编辑同步数据库指向

shell 复制代码
stop slave;
change master to
 master_host = '192.168.6.136',
 master_user = 'user_sync',
 master_password = 'mypassword',
  #主服务器数据库上的file值(不能有空格)
 master_log_file = 'mysql-bin.000001',
  #主服务器数据库的Position值
 master_log_pos = 157,
 get_master_public_key=1;

start slave;

显示同步情况

shell 复制代码
show slave status\G
当Slave_IO_Running和Slave_SQL_Running均为Yes时,代表正在保持同步

2.2.主备故障切换

3.mysql数据库主主实现

相关推荐
努力进修4 小时前
破除工业 AI 业务落地壁垒:多模时序融合架构重塑设备全维度数据价值
数据库·人工智能·架构
静水楼台x4 小时前
spring security
java·数据库·spring
深度研习笔记4 小时前
OpenCV工业视觉进阶14|SQLite违规数据库存储+历史记录查询+Excel报表导出,完成项目商用数据闭环(验收必备)
数据库·opencv·sqlite
拾光Ծ4 小时前
【Linux网络】网络通信实战:UDP & TCP Socket编程实现Echo Server
linux·网络·网络协议·tcp/ip·udp·线程池
要开心吖ZSH7 小时前
一文搞懂:JDK 21 虚拟线程 vs N种异步方案,到底该怎么选?
java·数据库·jdk·虚拟线程
guodingdingh11 小时前
软件开发工作问题总结0718
java·开发语言·数据库
GuWenyue13 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
Miao1213115 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
CodexDave15 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影15 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库