1. 首页 > MySQL教程 > 正文

MySQL教程FG012-MySQL服务器管理详解

本文档风哥主要介绍MySQL 8.4服务器的管理,包括服务器安装、配置、监控和安全管理等方面。风哥教程参考MySQL官方文档MySQL Server Administration等。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 MySQL服务器概述

MySQL服务器是MySQL数据库系统的核心组件,负责处理客户端请求、管理数据存储和提供各种服务。学习交流加群风哥微信: itpux-com

1.2 服务器架构

MySQL服务器采用多线程架构,包括连接管理、查询处理、存储引擎等组件。

1.3 服务器参数

MySQL服务器参数控制着服务器的行为,包括内存使用、连接管理、存储引擎设置等。

Part02-生产环境规划与建议

2.1 服务器规划

根据业务需求规划MySQL服务器的硬件配置,包括CPU、内存、存储等。

2.2 存储规划

合理规划存储结构,包括数据目录、日志目录等,建议将数据文件和日志文件存储在不同的磁盘上。

2.3 网络规划

规划网络架构,确保MySQL服务的网络连接稳定,包括防火墙配置和端口开放。

Part03-生产环境项目实施方案

3.1 服务器安装与配置

MySQL服务器的安装与配置:

# 安装MySQL服务器
# yum install mysql-community-server

# 编辑配置文件
# vi /etc/my.cnf
[mysqld]
datadir=/mysql/data
socket=/tmp/mysql.sock
log-error=/mysql/logs/error.log
pid-file=/mysql/data/mysqld.pid

# 创建数据目录
# mkdir -p /mysql/data /mysql/logs
# chown -R mysql:mysql /mysql

# 初始化数据库
# mysqld –initialize –user=mysql

# 启动MySQL服务
# systemctl start mysqld

# 查看初始密码
# grep ‘temporary password’ /mysql/logs/error.log
2026-04-01T08:00:00.000000Z 6 [Note] [MY-010454] [Server] A temporary password is generated for
root@localhost: Xxxxxxxx

# 修改root密码
# mysql -u root -p
Enter password: Xxxxxxxx
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘Fgedu123!’;
Query OK, 0 rows affected (0.01 sec)

3.2 服务管理

MySQL服务的管理操作:

# 启动MySQL服务
# systemctl start mysqld

# 停止MySQL服务
# systemctl stop mysqld

# 重启MySQL服务
# systemctl restart mysqld

# 查看MySQL服务状态
# systemctl status mysqld
● mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2026-04-01 17:00:00 CST; 1min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1234 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Main PID: 1234 (mysqld)
Status: “Server is operational”
Tasks: 38 (limit: 4915)
Memory: 1.2G
CGroup: /system.slice/mysqld.service
└─1234 /usr/sbin/mysqld

# 设置开机自启
# systemctl enable mysqld

# 取消开机自启
# systemctl disable mysqld

3.3 性能监控

MySQL服务器的性能监控:

# 查看服务器状态
# mysql -u root -p -e “SHOW GLOBAL STATUS;”

# 查看服务器变量
# mysql -u root -p -e “SHOW GLOBAL VARIABLES;”

# 查看连接数
# mysql -u root -p -e “SHOW GLOBAL STATUS LIKE ‘Threads_%’;”
+——————-+——-+
| Variable_name | Value |
+——————-+——-+
| Threads_cached | 0 |
| Threads_connected | 1 |
| Threads_created | 1 |
| Threads_running | 1 |
+——————-+——-+

# 查看查询缓存
# mysql -u root -p -e “SHOW GLOBAL STATUS LIKE ‘Qcache%’;”

# 查看慢查询
# mysql -u root -p -e “SHOW GLOBAL STATUS LIKE ‘Slow_queries’;”
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Slow_queries | 0 |
+—————+——-+

# 使用Performance Schema
# mysql -u root -p -e “SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY sum_timer_wait DESC LIMIT 10;”

3.4 安全管理

MySQL服务器的安全管理:

# 查看用户权限
# mysql -u root -p -e “SELECT user, host FROM mysql.user;”

# 创建用户
# mysql -u root -p -e “CREATE USER ‘fgedu’@’localhost’ IDENTIFIED BY ‘Fgedu123!’;”

# 授予权限
# mysql -u root -p -e “GRANT ALL PRIVILEGES ON fgedudb.* TO ‘fgedu’@’localhost’;”

# 刷新权限
# mysql -u root -p -e “FLUSH PRIVILEGES;”

# 移除匿名用户
# mysql -u root -p -e “DELETE FROM mysql.user WHERE user=”;”

# 禁用远程root登录
# mysql -u root -p -e “DELETE FROM mysql.user WHERE user=’root’ AND host!=’localhost’;”

# 限制密码策略
# mysql -u root -p -e “SET GLOBAL validate_password.policy = ‘STRONG’;”

# 启用SSL
# mysql -u root -p -e “SHOW VARIABLES LIKE ‘%ssl%’;”

Part04-生产案例与实战讲解

4.1 服务器参数优化

MySQL服务器参数优化案例:

# 编辑配置文件
# vi /etc/my.cnf
[mysqld]
# 基础配置
datadir=/mysql/data
socket=/tmp/mysql.sock
log-error=/mysql/logs/error.log
pid-file=/mysql/data/mysqld.pid

# 内存配置
innodb_buffer_pool_size=16G
key_buffer_size=256M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=4M
join_buffer_size=4M

# 连接配置
max_connections=1000
max_connect_errors=10000
wait_timeout=3600
interactive_timeout=3600

# 日志配置
slow_query_log=1
slow_query_log_file=/mysql/logs/slow.log
long_query_time=1
log_bin=/mysql/binlog/mysql-bin
expire_logs_days=7

# 存储引擎配置
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
innodb_log_buffer_size=32M

# 重启服务器
# systemctl restart mysqld

# 验证参数
# mysql -u root -p -e “SHOW VARIABLES LIKE ‘innodb_buffer_pool_size’;”
+————————-+————+
| Variable_name | Value |
+————————-+————+
| innodb_buffer_pool_size | 17179869184 |
+————————-+————+

4.2 服务故障处理

MySQL服务故障处理案例:

# 故障1:服务启动失败
# 检查错误日志
# tail -f /mysql/logs/error.log
2026-04-01T09:00:00.000000Z 0 [ERROR] [MY-010119] [Server] Aborting
2026-04-01T09:00:00.000000Z 0 [ERROR] [MY-013183] [InnoDB] Assertion failure: log0recv.cc:840:len == srv_log_buffer_size

# 处理方法:检查配置文件,调整innodb_log_buffer_size参数
# vi /etc/my.cnf
innodb_log_buffer_size=64M

# 重启服务
# systemctl restart mysqld

# 故障2:连接数过多
# 查看连接数
# mysql -u root -p -e “SHOW GLOBAL STATUS LIKE ‘Threads_connected’;”
+——————-+——-+
| Variable_name | Value |
+——————-+——-+
| Threads_connected | 950 |
+——————-+——-+

# 处理方法:调整max_connections参数
# vi /etc/my.cnf
max_connections=1500

# 重启服务
# systemctl restart mysqld

# 故障3:慢查询过多
# 查看慢查询
# mysql -u root -p -e “SHOW GLOBAL STATUS LIKE ‘Slow_queries’;”
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Slow_queries | 100 |
+—————+——-+

# 处理方法:分析慢查询日志
# mysqldumpslow /mysql/logs/slow.log

Part05-风哥经验总结与分享

5.1 常见问题解答

MySQL服务器管理中常见的问题包括:

  • 服务启动失败:检查配置文件和错误日志
  • 连接数过多:调整max_connections参数
  • 性能下降:优化服务器参数和查询语句
  • 安全问题:加强用户权限管理和网络访问控制

5.2 最佳实践建议

1. 定期备份数据:使用mysqldump或xtrabackup定期备份数据
2. 监控服务器状态:使用Performance Schema和sys schema监控服务器状态
3. 优化服务器参数:根据实际需求调整MySQL参数
4. 加强安全管理:定期更新密码,限制用户权限,启用SSL
5. 定期维护:使用mysqlcheck定期检查和修复表,使用OPTIMIZE TABLE优化表
6. 合理规划存储:将数据文件和日志文件存储在不同的磁盘上
7. 监控性能:使用慢查询日志和性能监控工具分析性能问题

风哥提示:在生产环境中,建议使用监控工具如Prometheus和Grafana监控MySQL服务器的性能和状态。from MySQL:www.itpux.com
GF-MySQL数据库培训文档系列

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息