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环境中数据库的高效管理,保障数据安全与系统稳定。