MySQL 部署、备份与主从同步
MySQL 部署、备份与主从同步

初始化后的口令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)中
核心流程
- 主库(Master)记录所有数据变更到二进制日志(binlog)
- 从库(Slave) 通过 I/O 线程拉取主库的 binlog,写入本地中继日志(relay log)
- 从库的 SQL 线程 解析 relay log 并执行 SQL 操作,保持数据一致性
实现方式
- 基于语句的复制(Statement‑based Replication,SBR):主数据库将执行的 SQL 语句记录在二进制日志中,从数据库在复制时会重新执行这些语句来实现数据同步。
- 基于行的复制(Row‑based Replication,RBR):主数据库会将每一行数据的更改记录在二进制日志中,从数据库根据这些记录来更新相应的行。
- 混合模式复制(Mixed‑mode Replication):结合了基于语句和基于行的复制方式
mysql主从的应用场景
- 读写分离:主库处理写操作,从库处理读请求
- 数据热备:主库故障时快速切换至从库
- 负载均衡:分散高并发查询压力
MySQL主从复制操作
1. 服务器要求
| 角色 | IP示例 | MySQL版本 | 操作系统 |
|---|---|---|---|
| 主库 | 172.22.4.3 | 8+ | CentOS 7.9 |
| 从库 | 172.22.4.4 | 8+ | CentOS 7.9 |
环境注意事项:
- 主从库 MySQL 版本需一致
- 确保主从服务器网络互通(禁用防火墙或开放 3306 端口)
补充要点梳理
- binlog:主库二进制日志,记录所有数据修改
- IO线程:从库,负责拉取主库binlog,写入relay‑log中继日志
- SQL线程:从库,回放中继日志,完成数据同步
- SBR:记录SQL语句;RBR:记录行数据变更;Mixed:自动混合两种模式
- 三大用途:读写分离、故障备份、分担查询压力
- 环境前提:版本兼容、网络通、3306端口放行
数据库切分策略
redis的数据放在内存里