MariaDB支持多种存储引擎,不同引擎针对不同场景设计,选择合适的引擎是存储管理的核心。
数据目录是MariaDB存储数据文件(表、索引、日志等)的核心路径,需合理配置和管理。
通过SQL命令确认数据目录位置:
mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"
默认路径通常为/var/lib/mysql(CentOS/RHEL)或/usr/local/mysql/data(源码编译安装)。
若需更改数据目录(如扩展磁盘空间),需按以下步骤操作:
sudo systemctl stop mariadb(避免数据损坏)。sudo mkdir -p /new/mysql/data(如/new/mysql/data)。sudo chown -R mysql:mysql /new/mysql/data(确保MariaDB用户mysql拥有所有权);sudo chmod 750 /new/mysql/data(限制其他用户访问)。rsync(推荐,保留权限)或cp命令复制数据:sudo rsync -av /var/lib/mysql/ /new/mysql/data/。/etc/my.cnf(或/etc/mysql/my.cnf),在[mysqld]部分修改datadir:[mysqld]
datadir=/new/mysql/data
socket=/new/mysql/data/mysql.sock # 可选:同步更新socket路径
sudo semanage fcontext -a -t mysqld_db_t "/new/mysql/data(/.*)?"
sudo restorecon -Rv /new/mysql/data
sudo systemctl start mariadb,并通过SHOW VARIABLES LIKE 'datadir';验证是否生效。内存是MariaDB性能的关键,合理分配内存参数可显著提升存储和处理效率。
当磁盘空间不足时,需及时清理和优化,避免服务中断。
sudo apt-get autoclean(清理旧deb包)、sudo apt-get clean(清理所有deb包)、sudo apt-get autoremove(删除无用软件包)。sudo rm -rf /var/log/mysql/*.log(删除MariaDB日志)、sudo du -sh /var/log/* | sort -rh(查找大日志文件)。sudo find / -type f -size +100M -exec ls -lh {} \;(查找大于100M的文件)。fdisk、parted)新增分区并挂载。GParted图形工具)。lvextend扩展逻辑卷,再调整文件系统大小(resize2fs)。INT代替BIGINT、VARCHAR(50)代替TEXT(减少存储空间)。PARTITION BY RANGE (YEAR(create_time))),提高查询效率。OPTIMIZE TABLE命令(如OPTIMIZE TABLE large_table;),整理碎片、回收空间(对InnoDB表需注意:会锁表,建议在低峰期执行)。mysql用户和组(sudo chown -R mysql:mysql /data/mysql),避免权限过高导致数据被篡改。750(所有者可读写执行,组用户可读执行,其他用户无权限),避免其他用户访问敏感数据。rsync或mysqldump),防止数据丢失(如磁盘故障、误操作)。