MySQL 部署、备份与主从同步

📂 运维学习

MySQL 部署、备份与主从同步

image.png
初始化后的口令e69lpA_qsrK8

sudo tee /etc/my.cnf <<EOF
[mysqld]
basedir = /user/local/mysql
datadir = /data/mysql   其他用户禁止访问
socket = /tmp/mysql.sock
port = 3306
log-error = /data/mysql/mysql-error.log
pid-file = /data/mysql/mysql.pid
# 安全配置
skip-name-resolve = 1
symbolic-links = 0
explicit_defaults_for_timestamp = 1
# 内存优化(根据服务器配置调整)
key_buffer_size = 256M
max_allowed_packet = 64M
EOF

mysqld启动的时候会读取这个配置文件

启动服务

sudo tee /etc/systemd/system/mysql.service <<EOF
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/user/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload  重载守护进程
sudo systemctl start mysql
sudo systemctl enable mysql

mysql -u root -p 临时登录

修改密码 刷新
执行安全脚本

insert into 规范写法

可以创建其他的mysql账号 然后给账号授权 最后刷新权限

关于数据库备份 使用mysqldump 生成sql语句

三.mysqldump的使用

基本命令格式 mysqldump -u[用户名] -p[密码] [选项] [数据库名] [表名] > 备份文件.sql 注意:-p 和密码之间无空格(若省略密码,执行时会提示输入)

备份

1.备份单个数据库 mysqldump -u root -p --single-transaction --routines --events mydb > mydb_full.sql --single-transaction 确保 InnoDB 表一致性。 --routines 和 --events 包含存储过程和定时任务

2.备份多个表 mysqldump -u root -p [数据库名] table1 table2 --where="id < 1000" > mydb_tables_partial.sql 参数说明: --where:仅备份 id < 1000 的数据

3.仅备份表结构 mysqldump -u root -p --no-data mydb > mydb_schema.sql

4.压缩备份文件 mysqldump -u root -p mydb | gzip > mydb_full_$(date +%F).sql.gz

mysql的高级特性

多实例配置

主从同步实现 读写分离机制

MySQL主从同步

介绍:主从同步是一种数据库复制技术,用于将主数据库(Master)中的数据实时或接近实时地复制到一个或多个从数据库(Slave)中

核心流程

  1. 主库(Master)记录所有数据变更到二进制日志(binlog)
  2. 从库(Slave) 通过 I/O 线程拉取主库的 binlog,写入本地中继日志(relay log)
  3. 从库的 SQL 线程 解析 relay log 并执行 SQL 操作,保持数据一致性

实现方式

  1. 基于语句的复制(Statement‑based Replication,SBR):主数据库将执行的 SQL 语句记录在二进制日志中,从数据库在复制时会重新执行这些语句来实现数据同步。
  2. 基于行的复制(Row‑based Replication,RBR):主数据库会将每一行数据的更改记录在二进制日志中,从数据库根据这些记录来更新相应的行。
  3. 混合模式复制(Mixed‑mode Replication):结合了基于语句和基于行的复制方式

mysql主从的应用场景

  • 读写分离:主库处理写操作,从库处理读请求
  • 数据热备:主库故障时快速切换至从库
  • 负载均衡:分散高并发查询压力

MySQL主从复制操作

1. 服务器要求

角色IP示例MySQL版本操作系统
主库172.22.4.38+CentOS 7.9
从库172.22.4.48+CentOS 7.9

环境注意事项

  1. 主从库 MySQL 版本需一致
  2. 确保主从服务器网络互通(禁用防火墙或开放 3306 端口)

补充要点梳理

  • binlog:主库二进制日志,记录所有数据修改
  • IO线程:从库,负责拉取主库binlog,写入relay‑log中继日志
  • SQL线程:从库,回放中继日志,完成数据同步
  • SBR:记录SQL语句;RBR:记录行数据变更;Mixed:自动混合两种模式
  • 三大用途:读写分离、故障备份、分担查询压力
  • 环境前提:版本兼容、网络通、3306端口放行

数据库切分策略

redis的数据放在内存里