CentOS LAMP数据库管理指南
LAMP(Linux、Apache、MySQL/MariaDB、PHP)是CentOS上常见的Web开发环境,数据库管理是其核心环节。以下从安装配置、日常操作、优化安全、监控维护等维度总结管理方法:
CentOS上优先选择MariaDB(MySQL分支,兼容性好且开源),安装步骤如下:
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
mysql_secure_installation脚本,完成以下操作:
若需安装MySQL(非MariaDB),可将上述命令中的mariadb-server替换为mysql-server,mariadb替换为mysql。
使用root用户登录本地数据库:
mysql -u root -p
输入密码后进入MySQL命令行界面。
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SHOW DATABASES;
DROP DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES; -- 刷新权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
同时需修改防火墙规则允许3306端口(见下文安全部分)。mysqldump导出数据库(含结构和数据):mysqldump -u myuser -p mydatabase > /backup/mydatabase_$(date +%F).sql
mysql -u myuser -p mydatabase < /backup/mydatabase_2025-09-16.sql
CREATE INDEX idx_username ON users(username);
EXPLAIN分析慢查询,优化SQL语句(如避免SELECT *、合理使用JOIN)。LIMIT 10000, 10可改用WHERE id > 10000 LIMIT 10)。my.cnf(通常位于/etc/my.cnf)中的关键参数:[mysqld]
innodb_buffer_pool_size = 1G # 缓冲池大小(建议为物理内存的50%-70%)
max_connections = 200 # 最大连接数(根据并发量调整)
query_cache_type = 0 # 关闭查询缓存(MySQL 8.0+默认关闭)
SELECT、INSERT,而非ALL PRIVILEGES);GRANT ... TO 'myuser'@'192.168.1.100');sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
my.cnf中的ssl-ca、ssl-cert、ssl-key参数);SHOW STATUS:查看服务器状态变量(如连接数、查询次数);SHOW PROCESSLIST:查看当前执行的查询(识别慢查询);pt-query-digest(分析慢查询)、pt-mysql-summary(服务器状态汇总)等工具。slow_query_log = 1,long_query_time = 2),定期分析并优化慢查询;log_error = /var/log/mariadb/mariadb.log),排查数据库异常。sudo yum update mariadb-server);OPTIMIZE TABLE命令,适用于频繁更新的表)。通过以上步骤,可实现CentOS LAMP环境中数据库的高效管理,保障数据安全与系统稳定。