首页主机资讯Ubuntu MariaDB使用心得分享

Ubuntu MariaDB使用心得分享

时间2025-11-17 13:51:04发布访客分类主机资讯浏览1301
导读:Ubuntu 上 MariaDB 使用心得与实操要点 一 安装与初始化 在 Ubuntu 24.04 上可直接用系统源安装,省去额外仓库管理: 更新并安装:sudo apt update && sudo apt inst...

Ubuntu 上 MariaDB 使用心得与实操要点

一 安装与初始化

  • Ubuntu 24.04 上可直接用系统源安装,省去额外仓库管理:
    • 更新并安装:sudo apt update & & sudo apt install mariadb-server mariadb-client -y
    • 启动与自启:sudo systemctl start mariadb & & sudo systemctl enable mariadb
    • 状态检查:sudo systemctl status mariadb
  • 安全加固建议运行:sudo mariadb_secure_installation,按需选择:
    • 是否启用 unix_socket 认证(本地免密便捷,远程访问建议关闭)
    • 设置 root 强密码
    • 删除匿名用户、禁止 root 远程登录、移除测试库并刷新权限
  • 登录验证:本地可用 sudo mariadb(socket 认证),或 mysql -u root -p(密码认证);验证版本:SELECT VERSION();

二 配置与目录结构

  • 配置入口与包含关系:主配置 /etc/mysql/mariadb.cnf 会包含 /etc/mysql/conf.d//etc/mysql/mariadb.conf.d/ 目录下的配置片段;服务器常用参数在 /etc/mysql/mariadb.conf.d/50-server.cnf[mysqld] 段。
  • 常见基础项:
    • 绑定地址:本地仅本机访问可用 bind-address = 127.0.0.1;需要远程访问改为 0.0.0.0(务必配合防火墙与访问控制)
    • 连接与会话:max_connectionsskip-name-resolve(减少 DNS 解析开销)
    • 日志与诊断:slow_query_log = 1slow_query_log_filelong_query_time = 2
  • 修改配置后重启生效:sudo systemctl restart mariadb

三 性能优化要点

  • InnoDB 缓冲池:将 innodb_buffer_pool_size 设为物理内存的约 50%–70%(写多或内存充足可更高),如 4G/8G 等具体值,能显著减少磁盘 I/O。
  • 日志与提交策略:innodb_log_file_size = 256M 提升批量写入吞吐;innodb_flush_log_at_trx_commit = 2 可提升性能(在宕机场景下相较 1 有数据丢失风险,权衡取舍)。
  • 并发与连接:max_connections 结合业务峰值与内存评估,避免过大导致线程争用与内存压力。
  • 临时表与内存:适当提升 tmp_table_sizemax_heap_table_size(如各 256M),减少磁盘临时表。
  • 查询与索引:
    • 使用 EXPLAIN 分析执行计划,避免 **SELECT ***,合理构造 JOIN 与复合索引
    • 控制结果集与分页,减少大偏移量的开销
  • 维护与监控:
    • 定期 OPTIMIZE TABLE 整理碎片,清理过期日志
    • 启用慢查询日志定位问题 SQL,配合 SHOW PROCESSLISTSHOW STATUS 做现场诊断
    • 生产建议接入 Prometheus + GrafanaZabbix 做长期可视化监控。

四 备份恢复与高可用

  • 逻辑备份与恢复(轻量、跨版本友好):
    • 备份:mysqldump -u root -p --single-transaction --routines --triggers --databases your_db > backup.sql
    • 恢复:mysql -u root -p < backup.sql
    • 建议将备份文件纳入版本管理与定期校验(如校验和/还原演练)
  • 高可用思路(按场景选型):
    • 主从复制:提升读扩展与故障切换能力
    • Galera Cluster:多主同步,强一致,适合对可用性要求高的场景
    • 云上可用托管数据库服务(如 RDS/Aurora 兼容 MariaDB),降低运维复杂度

五 常见问题与排障清单

  • root 无法用密码登录但 sudo mariadb 可进:这是 unix_socket 认证生效。若需密码远程/本地登录,可切换为密码插件:
    • 在 MariaDB 中执行:ALTER USER ‘root’@‘localhost’ IDENTIFIED VIA mysql_native_password USING PASSWORD(‘YourStrongP@ssw0rd’); FLUSH PRIVILEGES;
  • 远程连不上:
    • 确认 bind-address = 0.0.0.0 且服务重启
    • 检查云安全组/本机防火墙放行 3306/tcp
    • 确保用户主机为 ‘user’@‘%’ 而非仅 ‘user’@‘localhost’
  • 忘记 root 密码(维护窗口内操作):
    • 停止服务:sudo systemctl stop mariadb
    • 安全模式启动:sudo mysqld_safe --skip-grant-tables &
    • 登录并重置:mysql -u root,执行 ALTER USER 修改密码并 FLUSH PRIVILEGES;
    • 重启服务:sudo systemctl restart mariadb
  • 性能抖动或连接堆积:
    • 现场查看:SHOW PROCESSLIST; SHOW STATUS LIKE ‘Threads_connected’;
    • 检查慢查询日志与锁等待,必要时临时扩容 max_connections 或优化长事务。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB使用心得分享
本文地址: https://pptw.com/jishu/748903.html
Ubuntu MariaDB权限设置指南 Ubuntu MariaDB常见错误及解决

游客 回复需填写必要信息