本文档风哥主要介绍MariaDB的systemd服务管理与日志配置标准化,包括systemd服务文件配置、日志管理、服务管理命令等内容。风哥教程参考MariaDB官方文档Systemd Service、Logging内容,适合数据库管理员学习和实施。
Part01-基础概念与理论知识
1.1 systemd概述
systemd是现代Linux系统的初始化系统和服务管理器,负责:
- 系统引导
- 服务管理
- 日志管理
- 设备管理
- 电源管理
1.2 服务管理基础
MariaDB服务管理包括:
- 启动/停止/重启服务
- 设置开机自启
- 查看服务状态
- 服务依赖管理
1.3 日志管理基础
MariaDB日志管理包括:
- 错误日志
- 查询日志
- 慢查询日志
- 二进制日志
- 中继日志
更多视频教程www.fgedu.net.cn
Part02-生产环境规划与建议
2.1 服务规划
风哥提示:生产环境应使用systemd管理MariaDB服务,确保服务的稳定运行和自动恢复。
2.2 日志规划
日志规划建议:
- 单独存储日志文件
- 设置合理的日志轮转
- 配置适当的日志级别
- 定期清理日志文件
2.3 标准化建议
标准化建议:
- 统一服务文件配置
- 统一日志格式
- 统一管理命令
- 统一监控标准
学习交流加群风哥微信: itpux-com
Part03-生产环境项目实施方案
3.1 systemd服务配置
更多学习教程公众号风哥教程itpux_com
# 创建systemd服务文件
[root@fgedu.net.cn ~]# cat > /etc/systemd/system/mariadb.service << 'EOF'
[Unit]
Description=MariaDB 10.11.8 database server
After=network.target
[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mariadb/bin/mysqld –defaults-file=/etc/my.cnf
ExecStop=/usr/local/mariadb/bin/mysqladmin –defaults-file=/etc/my.cnf -u root -p shutdown
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
# 重新加载systemd配置
[root@fgedu.net.cn ~]# systemctl daemon-reload
# 启用服务
[root@fgedu.net.cn ~]# systemctl enable mariadb
# 启动服务
[root@fgedu.net.cn ~]# systemctl start mariadb
[root@fgedu.net.cn ~]# cat > /etc/systemd/system/mariadb.service << 'EOF'
[Unit]
Description=MariaDB 10.11.8 database server
After=network.target
[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mariadb/bin/mysqld –defaults-file=/etc/my.cnf
ExecStop=/usr/local/mariadb/bin/mysqladmin –defaults-file=/etc/my.cnf -u root -p shutdown
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
# 重新加载systemd配置
[root@fgedu.net.cn ~]# systemctl daemon-reload
# 启用服务
[root@fgedu.net.cn ~]# systemctl enable mariadb
# 启动服务
[root@fgedu.net.cn ~]# systemctl start mariadb
3.2 日志配置
# 配置日志参数
[root@fgedu.net.cn ~]# cat >> /etc/my.cnf << 'EOF'
# 日志配置
log_error = /mariadb/logs/mariadb.err
slow_query_log = 1
slow_query_log_file = /mariadb/logs/slow.log
long_query_time = 1
general_log = 0
general_log_file = /mariadb/logs/general.log
# 二进制日志
binlog_format = ROW
log_bin = /mariadb/logs/binlog
binlog_expire_logs_seconds = 86400
max_binlog_size = 100M
EOF
# 创建日志目录
[root@fgedu.net.cn ~]# mkdir -p /mariadb/logs
[root@fgedu.net.cn ~]# chown -R mysql:mysql /mariadb/logs
# 重启服务
[root@fgedu.net.cn ~]# systemctl restart mariadb
# 验证日志配置
[root@fgedu.net.cn ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> SHOW VARIABLES LIKE ‘%log%’;
+—————————————–+——————————–+—————+
| Variable_name | Value | Type |
+—————————————–+——————————–+—————+
| log_bin | ON | global |
| log_bin_basename | /mariadb/logs/binlog | global |
| log_bin_index | /mariadb/logs/binlog.index | global |
| log_error | /mariadb/logs/mariadb.err | global |
| log_output | FILE | global |
| log_queries_not_using_indexes | OFF | global |
| log_slave_updates | OFF | global |
| log_slow_admin_statements | OFF | global |
| log_slow_slave_statements | OFF | global |
| log_warnings | 2 | global |
| long_query_time | 1.000000 | global |
| slow_query_log | ON | global |
| slow_query_log_file | /mariadb/logs/slow.log | global |
+—————————————–+——————————–+—————+
[root@fgedu.net.cn ~]# cat >> /etc/my.cnf << 'EOF'
# 日志配置
log_error = /mariadb/logs/mariadb.err
slow_query_log = 1
slow_query_log_file = /mariadb/logs/slow.log
long_query_time = 1
general_log = 0
general_log_file = /mariadb/logs/general.log
# 二进制日志
binlog_format = ROW
log_bin = /mariadb/logs/binlog
binlog_expire_logs_seconds = 86400
max_binlog_size = 100M
EOF
# 创建日志目录
[root@fgedu.net.cn ~]# mkdir -p /mariadb/logs
[root@fgedu.net.cn ~]# chown -R mysql:mysql /mariadb/logs
# 重启服务
[root@fgedu.net.cn ~]# systemctl restart mariadb
# 验证日志配置
[root@fgedu.net.cn ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> SHOW VARIABLES LIKE ‘%log%’;
+—————————————–+——————————–+—————+
| Variable_name | Value | Type |
+—————————————–+——————————–+—————+
| log_bin | ON | global |
| log_bin_basename | /mariadb/logs/binlog | global |
| log_bin_index | /mariadb/logs/binlog.index | global |
| log_error | /mariadb/logs/mariadb.err | global |
| log_output | FILE | global |
| log_queries_not_using_indexes | OFF | global |
| log_slave_updates | OFF | global |
| log_slow_admin_statements | OFF | global |
| log_slow_slave_statements | OFF | global |
| log_warnings | 2 | global |
| long_query_time | 1.000000 | global |
| slow_query_log | ON | global |
| slow_query_log_file | /mariadb/logs/slow.log | global |
+—————————————–+——————————–+—————+
3.3 服务管理
# 服务管理命令
# 查看服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
# 启动服务
[root@fgedu.net.cn ~]# systemctl start mariadb
# 停止服务
[root@fgedu.net.cn ~]# systemctl stop mariadb
# 重启服务
[root@fgedu.net.cn ~]# systemctl restart mariadb
# 重新加载配置
[root@fgedu.net.cn ~]# systemctl reload mariadb
# 查看服务启动时间
[root@fgedu.net.cn ~]# systemctl show -p ActiveEnterTimestamp mariadb
# 查看服务依赖
[root@fgedu.net.cn ~]# systemctl list-dependencies mariadb
# 查看服务日志
[root@fgedu.net.cn ~]# journalctl -u mariadb
[root@fgedu.net.cn ~]# journalctl -u mariadb -n 50
[root@fgedu.net.cn ~]# journalctl -u mariadb –since “1 hour ago”
# 查看服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
# 启动服务
[root@fgedu.net.cn ~]# systemctl start mariadb
# 停止服务
[root@fgedu.net.cn ~]# systemctl stop mariadb
# 重启服务
[root@fgedu.net.cn ~]# systemctl restart mariadb
# 重新加载配置
[root@fgedu.net.cn ~]# systemctl reload mariadb
# 查看服务启动时间
[root@fgedu.net.cn ~]# systemctl show -p ActiveEnterTimestamp mariadb
# 查看服务依赖
[root@fgedu.net.cn ~]# systemctl list-dependencies mariadb
# 查看服务日志
[root@fgedu.net.cn ~]# journalctl -u mariadb
[root@fgedu.net.cn ~]# journalctl -u mariadb -n 50
[root@fgedu.net.cn ~]# journalctl -u mariadb –since “1 hour ago”
学习交流加群风哥QQ113257174
Part04-生产案例与实战讲解
4.1 systemd服务配置实战
# 检查服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: active (running) since Mon 2026-04-07 16:00:00 CST;
10min ago
Main PID: 5678 (mysqld)
Status: “Taking your SQL requests now…”
Tasks: 35 (limit: 32768)
Memory: 1.2G
CPU: 2.5s
CGroup: /system.slice/mariadb.service
└─5678 /usr/local/mariadb/bin/mysqld –defaults-file=/etc/my.cnf
Apr 07 16:00:00 fgedu.net.cn systemd[1]: Started MariaDB 10.11.8 database server.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld (server 10.11.8-MariaDB) starting as process 5678 …
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Number of pools: 1
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Initializing buffer pool, total size = 4G, instances = 4, chunk size = 1G
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Completed initialization of buffer pool
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=16384
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: 128 rollback segments are active.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Creating shared tablespace for temporary tables
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Setting file ‘./ibtmp1’ size to 12.0 MB. Physically writing the file full;
Please wait …
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: File ‘./ibtmp1’ size is now 12.0 MB.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: 10.11.8 started;
log sequence number 16384;
transaction id 2
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] Plugin ‘FEEDBACK’ is disabled.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] Server socket created on IP: ‘0.0.0.0’.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld: ready for connections.
Version: ‘10.11.8-MariaDB’ socket: ‘/tmp/mysql.sock’ port: 3306 MariaDB Server
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: active (running) since Mon 2026-04-07 16:00:00 CST;
10min ago
Main PID: 5678 (mysqld)
Status: “Taking your SQL requests now…”
Tasks: 35 (limit: 32768)
Memory: 1.2G
CPU: 2.5s
CGroup: /system.slice/mariadb.service
└─5678 /usr/local/mariadb/bin/mysqld –defaults-file=/etc/my.cnf
Apr 07 16:00:00 fgedu.net.cn systemd[1]: Started MariaDB 10.11.8 database server.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld (server 10.11.8-MariaDB) starting as process 5678 …
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Number of pools: 1
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Initializing buffer pool, total size = 4G, instances = 4, chunk size = 1G
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Completed initialization of buffer pool
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=16384
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: 128 rollback segments are active.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Creating shared tablespace for temporary tables
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: Setting file ‘./ibtmp1’ size to 12.0 MB. Physically writing the file full;
Please wait …
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: File ‘./ibtmp1’ size is now 12.0 MB.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] InnoDB: 10.11.8 started;
log sequence number 16384;
transaction id 2
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] Plugin ‘FEEDBACK’ is disabled.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] Server socket created on IP: ‘0.0.0.0’.
Apr 07 16:00:00 fgedu.net.cn mysqld[5678]: 2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld: ready for connections.
Version: ‘10.11.8-MariaDB’ socket: ‘/tmp/mysql.sock’ port: 3306 MariaDB Server
4.2 日志配置实战
# 查看错误日志
[root@fgedu.net.cn ~]# tail -f /mariadb/logs/mariadb.err
2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld (server 10.11.8-MariaDB) starting as process 5678 …
2026-04-07 16:00:00 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2026-04-07 16:00:00 0 [Note] InnoDB: Number of pools: 1
2026-04-07 16:00:00 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2026-04-07 16:00:00 0 [Note] InnoDB: Initializing buffer pool, total size = 4G, instances = 4, chunk size = 1G
2026-04-07 16:00:00 0 [Note] InnoDB: Completed initialization of buffer pool
2026-04-07 16:00:00 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=16384
2026-04-07 16:00:00 0 [Note] InnoDB: 128 rollback segments are active.
2026-04-07 16:00:00 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2026-04-07 16:00:00 0 [Note] InnoDB: Setting file ‘./ibtmp1’ size to 12.0 MB. Physically writing the file full;
Please wait …
2026-04-07 16:00:00 0 [Note] InnoDB: File ‘./ibtmp1’ size is now 12.0 MB.
2026-04-07 16:00:00 0 [Note] InnoDB: 10.11.8 started;
log sequence number 16384;
transaction id 2
2026-04-07 16:00:00 0 [Note] Plugin ‘FEEDBACK’ is disabled.
2026-04-07 16:00:00 0 [Note] Server socket created on IP: ‘0.0.0.0’.
2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld: ready for connections.
Version: ‘10.11.8-MariaDB’ socket: ‘/tmp/mysql.sock’ port: 3306 MariaDB Server
# 测试慢查询日志
[root@fgedu.net.cn ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> USE fgedudb;
Database changed
# 创建测试表
MariaDB [fgedudb]> CREATE TABLE fgedu_test (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100));
Query OK, 0 rows affected (0.01 sec)
# 插入测试数据
MariaDB [fgedudb]> DELIMITER //
MariaDB [fgedudb]> CREATE PROCEDURE insert_test_data()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 100000 DO
INSERT INTO fgedu_test (name) VALUES (CONCAT(‘test_’, i));
SET i = i + 1;
END WHILE;
END //
MariaDB [fgedudb]> DELIMITER;
MariaDB [fgedudb]> CALL insert_test_data();
Query OK, 1 row affected (10.23 sec)
# 执行慢查询
MariaDB [fgedudb]> SELECT * FROM fgedu_test WHERE id > 50000;
+——-+———+
| id | name |
+——-+———+
| 50001 | test_50001 |
| 50002 | test_50002 |
| … | … |
| 100000 | test_100000 |
+——-+———+
50000 rows in set (0.23 sec)
# 查看慢查询日志
[root@fgedu.net.cn ~]# tail -f /mariadb/logs/slow.log
# Time: 2026-04-07 16:15:00
# User@Host: root[root] @ fgedu.localhost []
# Thread_id: 8 Schema: fgedudb QC_hit: No
# Query_time: 0.230000 Lock_time: 0.000000 Rows_sent: 50000 Rows_examined: 100000
SET timestamp=1712487300;
SELECT * FROM fgedu_test WHERE id > 50000;
[root@fgedu.net.cn ~]# tail -f /mariadb/logs/mariadb.err
2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld (server 10.11.8-MariaDB) starting as process 5678 …
2026-04-07 16:00:00 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2026-04-07 16:00:00 0 [Note] InnoDB: Number of pools: 1
2026-04-07 16:00:00 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2026-04-07 16:00:00 0 [Note] InnoDB: Initializing buffer pool, total size = 4G, instances = 4, chunk size = 1G
2026-04-07 16:00:00 0 [Note] InnoDB: Completed initialization of buffer pool
2026-04-07 16:00:00 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=16384
2026-04-07 16:00:00 0 [Note] InnoDB: 128 rollback segments are active.
2026-04-07 16:00:00 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2026-04-07 16:00:00 0 [Note] InnoDB: Setting file ‘./ibtmp1’ size to 12.0 MB. Physically writing the file full;
Please wait …
2026-04-07 16:00:00 0 [Note] InnoDB: File ‘./ibtmp1’ size is now 12.0 MB.
2026-04-07 16:00:00 0 [Note] InnoDB: 10.11.8 started;
log sequence number 16384;
transaction id 2
2026-04-07 16:00:00 0 [Note] Plugin ‘FEEDBACK’ is disabled.
2026-04-07 16:00:00 0 [Note] Server socket created on IP: ‘0.0.0.0’.
2026-04-07 16:00:00 0 [Note] /usr/local/mariadb/bin/mysqld: ready for connections.
Version: ‘10.11.8-MariaDB’ socket: ‘/tmp/mysql.sock’ port: 3306 MariaDB Server
# 测试慢查询日志
[root@fgedu.net.cn ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> USE fgedudb;
Database changed
# 创建测试表
MariaDB [fgedudb]> CREATE TABLE fgedu_test (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100));
Query OK, 0 rows affected (0.01 sec)
# 插入测试数据
MariaDB [fgedudb]> DELIMITER //
MariaDB [fgedudb]> CREATE PROCEDURE insert_test_data()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 100000 DO
INSERT INTO fgedu_test (name) VALUES (CONCAT(‘test_’, i));
SET i = i + 1;
END WHILE;
END //
MariaDB [fgedudb]> DELIMITER;
MariaDB [fgedudb]> CALL insert_test_data();
Query OK, 1 row affected (10.23 sec)
# 执行慢查询
MariaDB [fgedudb]> SELECT * FROM fgedu_test WHERE id > 50000;
+——-+———+
| id | name |
+——-+———+
| 50001 | test_50001 |
| 50002 | test_50002 |
| … | … |
| 100000 | test_100000 |
+——-+———+
50000 rows in set (0.23 sec)
# 查看慢查询日志
[root@fgedu.net.cn ~]# tail -f /mariadb/logs/slow.log
# Time: 2026-04-07 16:15:00
# User@Host: root[root] @ fgedu.localhost []
# Thread_id: 8 Schema: fgedudb QC_hit: No
# Query_time: 0.230000 Lock_time: 0.000000 Rows_sent: 50000 Rows_examined: 100000
SET timestamp=1712487300;
SELECT * FROM fgedu_test WHERE id > 50000;
4.3 服务管理实战
# 测试服务自动重启
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: active (running) since Mon 2026-04-07 16:00:00 CST;
20min ago
# 模拟服务故障
[root@fgedu.net.cn ~]# pkill -9 mysqld
# 查看服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: activating (auto-restart) (Result: signal) since Mon 2026-04-07 16:20:00 CST;
2s ago
Process: 5678 ExecStart=/usr/local/mariadb/bin/mysqld –defaults-file=/etc/my.cnf (code=killed, signal=KILL)
Main PID: 5678 (code=killed, signal=KILL)
# 等待自动重启
[root@fgedu.net.cn ~]# sleep 10
# 查看服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: active (running) since Mon 2026-04-07 16:20:05 CST;
5s ago
Main PID: 5890 (mysqld)
Status: “Taking your SQL requests now…”
# 验证服务恢复
[root@fgedu.net.cn ~]# mysql -u root -p -e “SELECT VERSION();
”
Enter password:
+—————–+
| VERSION() |
+—————–+
| 10.11.8-MariaDB |
+—————–+
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: active (running) since Mon 2026-04-07 16:00:00 CST;
20min ago
# 模拟服务故障
[root@fgedu.net.cn ~]# pkill -9 mysqld
# 查看服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: activating (auto-restart) (Result: signal) since Mon 2026-04-07 16:20:00 CST;
2s ago
Process: 5678 ExecStart=/usr/local/mariadb/bin/mysqld –defaults-file=/etc/my.cnf (code=killed, signal=KILL)
Main PID: 5678 (code=killed, signal=KILL)
# 等待自动重启
[root@fgedu.net.cn ~]# sleep 10
# 查看服务状态
[root@fgedu.net.cn ~]# systemctl status mariadb
● mariadb.service – MariaDB 10.11.8 database server
Loaded: loaded (/etc/systemd/system/mariadb.service;
enabled;
vendor preset: disabled)
Active: active (running) since Mon 2026-04-07 16:20:05 CST;
5s ago
Main PID: 5890 (mysqld)
Status: “Taking your SQL requests now…”
# 验证服务恢复
[root@fgedu.net.cn ~]# mysql -u root -p -e “SELECT VERSION();
”
Enter password:
+—————–+
| VERSION() |
+—————–+
| 10.11.8-MariaDB |
+—————–+
风哥提示:安全开发是防止SQL注入的第一道防线
Part05-风哥经验总结与分享
5.1 常见问题与解决
- 服务启动失败:查看错误日志,检查权限和配置
- 日志文件过大:配置日志轮转,定期清理
- 服务自动重启失败:检查系统资源,调整重启策略
- 日志权限问题:确保mysql用户对日志目录有写权限
5.2 最佳实践
风哥提示:生产环境应配置合理的服务管理策略和日志管理方案,确保服务的稳定运行和问题的及时排查。
5.3 故障排查
- 查看systemd服务日志:journalctl -u mariadb
- 查看MariaDB错误日志:tail -f /mariadb/logs/mariadb.err
- 检查服务状态:systemctl status mariadb
- 检查端口监听:netstat -tlnp | grep 3306
- 检查进程状态:ps aux | grep mysqld
from MariaDB视频:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
