Linux LNMP如何管理数据库
导读:LNMP环境下的数据库管理实操指南 一 安装与初始化 在 Debian/Ubuntu 上安装数据库(以 MariaDB 为例): 安装与启动:sudo apt update && sudo apt install mar...
LNMP环境下的数据库管理实操指南
一 安装与初始化
- 在 Debian/Ubuntu 上安装数据库(以 MariaDB 为例):
- 安装与启动:sudo apt update & & sudo apt install mariadb-server mariadb-client & & sudo systemctl start mariadb & & sudo systemctl enable mariadb
- 安全初始化:sudo mysql_secure_installation(设置 root 密码、删除匿名用户、禁止 root 远程登录、删除测试库)
- 在 CentOS/RHEL 上安装数据库(以 MySQL 为例):
- 安装与启动:sudo yum install mysql-server & & sudo systemctl start mysqld & & sudo systemctl enable mysqld
- 安全初始化:sudo mysql_secure_installation
- 创建业务库与用户(示例):
- CREATE DATABASE mydatabase;
- CREATE USER ‘myuser’@‘localhost’ IDENTIFIED BY ‘mypassword’;
- GRANT ALL PRIVILEGES ON mydatabase.* TO ‘myuser’@‘localhost’;
- FLUSH PRIVILEGES;
- 安装 PHP-FPM 与数据库扩展(Debian 示例):sudo apt install php-fpm php-mysql;完成后可用 phpinfo 或简单 mysqli 连接测试页验证连通性。
二 日常运维与备份恢复
- 服务管理(按系统选择其一):
- systemd:sudo systemctl { start|stop|restart|status} mariadb(或 mysqld)
- SysVinit:sudo /etc/init.d/mysql { start|stop|restart|reload|status}
- 备份与恢复:
- 逻辑备份(适合跨版本迁移与细粒度恢复):mysqldump -u root -p --single-transaction --routines --triggers --default-character-set=utf8mb4 mydatabase > backup.sql
- 恢复:mysql -u root -p mydatabase < backup.sql
- 建议将备份文件压缩并异地/离线保存,保留多份历史;在变更窗口前执行,并在恢复后校验数据一致性与对象完整性。
- 监控与巡检:
- 慢查询日志:开启并设置阈值(long_query_time),定期用 pt-query-digest 或 mysqldumpslow 分析,定位全表扫描、缺失索引、低效语句。
- 错误日志与告警:关注 ERROR 级别日志与告警,及时处理主从复制中断、磁盘满、连接数打满等问题。
- 资源监控:结合系统监控(如 sar、vmstat、iostat)观察 CPU、内存、I/O、连接数 等指标,避免资源瓶颈。
三 性能与安全优化
- 数据库参数(示例,需结合实例规格与应用特征调优):
- InnoDB 缓冲池:innodb_buffer_pool_size 建议设为物理内存的 50%–70%(专用数据库可更高,留出 OS 与其他服务内存)
- 连接与会话:合理设置 max_connections,避免过高导致内存与上下文切换激增;应用侧使用连接池与超时控制
- 日志与一致性:根据业务容忍度设置 innodb_flush_log_at_trx_commit(1 为最安全、性能较低;2/0 性能更高、风险增加)
- 查询优化:避免 SELECT *、减少大表 JOIN、优化子查询、为大范围模糊查询增加合适索引或改用搜索引擎/缓存
- 系统与存储:
- 文件系统与磁盘:优先 XFS/ext4,使用 SSD 或 RAID10 提升随机 I/O;确保充足的写缓存与电池/超级电容保护
- 内核与网络:适度降低 vm.swappiness(0–10),调整 vm.dirty_background_ratio/dirty_ratio;优化 TCP 队列与端口范围,必要时启用网卡 bonding
- 架构与缓存:
- 读写分离与从库:将报表/统计类查询分流到从库,减轻主库压力
- 缓存层:热点数据使用 Redis/Memcached 缓存,减少直接命中数据库
- 安全加固:
- 仅开放必要端口(如 3306 限制内网访问)、禁用 root 远程登录、限制数据库账户来源网段、定期轮换密码与证书
- 及时打补丁,开启 TLS 加密传输(如需要远程管理),审计关键操作与登录行为。
四 可视化管理与一键环境
- phpMyAdmin(Web 管理):
- 安装后放置于站点目录(如 /usr/local/nginx/html/phpadmin),通过 Nginx 配置 FastCGI 访问;适合日常库表与用户权限管理
- LNMP 一键安装包(lnmp.org)常用管理:
- 组件与目录:默认集成 Nginx、MySQL/MariaDB、PHP、phpMyAdmin 等;可在解压目录执行脚本进行安装/升级/管理
- 常用脚本:./addons.sh(安装/卸载缓存与组件)、./upgrade_mysql.sh、./upgrade_mysql2mariadb.sh、./upgrade_mariadb.sh(升级前务必自行完整备份)
- 环境管理:提供 lnmp { start|stop|reload|restart|status} 等快捷命令,便于统一启停与状态查看。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux LNMP如何管理数据库
本文地址: https://pptw.com/jishu/765733.html
