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数据库主主实现

相关推荐
IT枫斗者枫哥2 小时前
MyBatis一对多分页:LIMIT 20,为什么凑不齐20个订单?
java·数据库
Flynt2 小时前
"MySQL搜不动就上ES"?我先在50万行数据上测了它自带的ngram全文索引
mysql·elasticsearch·搜索引擎
律宏阔2 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔2 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴2 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
Y002 小时前
PostgreSQL 的锁:为什么你的 ALTER TABLE 会卡住,以及怎么查
数据库·postgresql
imDwAaY2 小时前
Redo Log 和 Binlog 为什么需要两阶段提交?
后端·mysql
灰原喜欢柯南2 小时前
OceanBase 运维管理知识点——OCP 监控、诊断与变更控制
数据库·oceanbase
码农-0042 小时前
Springboot 集成 Ehcache操作数据库显示SQL语句设置
数据库·spring boot·sql
仍然.2 小时前
Redis---事务
数据库·redis