首页主机资讯Debian MariaDB插件使用教程

Debian MariaDB插件使用教程

时间2025-11-17 21:05:05发布访客分类主机资讯浏览1225
导读:Debian 上 MariaDB 插件使用教程 一 环境准备与插件管理基础 确认版本与插件目录 查看版本:mysql -V 查看插件目录:SHOW VARIABLES LIKE ‘plugin_dir’; 插件目录不在默认路径时,可...

Debian 上 MariaDB 插件使用教程

一 环境准备与插件管理基础

  • 确认版本与插件目录
    • 查看版本:mysql -V
    • 查看插件目录:SHOW VARIABLES LIKE ‘plugin_dir’;
  • 插件目录不在默认路径时,可在配置中指定:
    • 编辑文件:/etc/mysql/mariadb.conf.d/50-server.cnf
    • 添加:plugin_dir=/usr/lib/x86_64-linux-gnu/mariadb/plugin
  • 插件管理常用 SQL
    • 安装:INSTALL PLUGIN plugin_name SONAME ‘shared_library.so’;
    • 卸载:UNINSTALL PLUGIN plugin_name;
    • 在线帮助:HELP ‘INSTALL PLUGIN’;
  • 说明:INSTALL PLUGIN 会将插件写入 mysql.plugin 表,后续重启会自动加载;插件库必须位于 plugin_dir 下,文件名需包含扩展名(如 .so)。

二 实战一 身份认证插件 unix_socket 与 mysql_native_password

  • 场景A 使用 unix_socket 实现本机免密登录(Debian 常见默认)
    • 特点:依赖 Linux 的 SO_PEERCRED,仅当操作系统用户与数据库用户同名时可免密登录本机套接字。
    • 检查与登录:
      • 查看 root 认证方式:SELECT user, plugin FROM mysql.user WHERE user=‘root’;
      • 若 plugin 为 unix_socket,本地可直接:mysql -u root -p(回车后无需密码)
  • 场景B 改为密码登录(mysql_native_password)
    • 设置 root 密码并切换插件(本机套接字或远程登录均可用密码):
      • mysql -u root -p
      • 执行(将 ‘YourStrongPass’ 替换为你的密码):
        • ALTER USER ‘root’@‘localhost’ IDENTIFIED VIA mysql_native_password USING PASSWORD(‘YourStrongPass’);
        • FLUSH PRIVILEGES;
    • 如需允许远程连接,可调整绑定地址并重启服务:
      • 编辑:/etc/mysql/mariadb.conf.d/50-server.cnf
      • 设置:bind-address=0.0.0.0(或注释掉该行)
      • 重启:systemctl restart mariadb
  • 安全提示:生产环境不建议长期使用 unix_socket 免密,建议为 root 设置强密码并限制来源 IP。

三 实战二 半同步复制插件 rpl_semi_sync

  • 适用:提升主从复制的可靠性,主库等待至少一个从库确认收到事务后再提交。
  • 安装与启用(主库与从库分别执行)
    • 主库安装并启用:
      • INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
      • SET GLOBAL rpl_semi_sync_master_enabled=1;
      • SET GLOBAL rpl_semi_sync_master_timeout=10000; (超时 10 秒)
    • 从库安装并启用:
      • INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;
      • SET GLOBAL rpl_semi_sync_slave_enabled=1;
    • 持久化(可选,写入配置文件)
      • 在 /etc/mysql/mariadb.conf.d/ 下创建 50-semisync.cnf:
        • [mysqld]
        • rpl_semi_sync_master_enabled=1
        • rpl_semi_sync_slave_enabled=1
        • rpl_semi_sync_master_timeout=10000
      • 重启:systemctl restart mariadb
  • 验证
    • 主库:SHOW STATUS LIKE ‘Rpl_semi_sync_master_status%’;
    • 从库:SHOW STATUS LIKE ‘Rpl_semi_sync_slave_status%’;
  • 卸载示例:UNINSTALL PLUGIN rpl_semi_sync_slave; 。

四 实战三 审计插件 server_audit 在 MySQL 5.7 上的使用

  • 背景:MySQL 社区版不带审计功能,可使用 MariaDB 的审计插件为 MySQL 5.7 增加审计能力。
  • 步骤
    • 获取插件库
      • 从 MariaDB 发行包中复制 server_audit.so 到 MySQL 的插件目录(先查 plugin_dir)。
    • 安装与启用
      • INSTALL PLUGIN server_audit SONAME ‘server_audit.so’;
      • 常用变量(按需设置):
        • SET GLOBAL server_audit_logging=ON;
        • SET GLOBAL server_audit_events=‘CONNECT,QUERY,TABLE’;
        • SET GLOBAL server_audit_file_path=‘/var/log/mysql/audit.log’;
    • 持久化(可选)
      • 在 MySQL 配置文件 [mysqld] 中加入:
        • server_audit_logging=ON
        • server_audit_events=CONNECT,QUERY,TABLE
        • server_audit_file_path=/var/log/mysql/audit.log
      • 重启:systemctl restart mysql
  • 注意
    • 插件版本需与 MariaDB 版本匹配,不同版本功能差异较大,请参考官方审计插件文档与版本对应说明。

五 常见问题与排查

  • 插件库找不到
    • 确认 .so 位于 SHOW VARIABLES LIKE ‘plugin_dir’; 返回目录;必要时在 50-server.cnf 中显式设置 plugin_dir 并重启。
  • 安装时报 “Can’t find symbol …”
    • 动态插件编译需定义宏:gcc … -DMYSQL_DYNAMIC_PLUGIN -shared -fPIC …;并确保包含 MariaDB 开发头文件。
  • unix_socket 免密不生效
    • 仅在本机有效且要求操作系统用户名与数据库用户名一致;检查插件是否为 unix_socket,并确认使用本地套接字连接(mysql -u root -p 而非 TCP 127.0.0.1)。
  • 远程仍无法用密码登录
    • 检查 bind-address、用户 host(如 ‘root’@‘%’)、防火墙与 TLS/SSL 配置。

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


若转载请注明出处: Debian MariaDB插件使用教程
本文地址: https://pptw.com/jishu/749337.html
Debian MariaDB主从复制配置 Debian MariaDB故障排查步骤

游客 回复需填写必要信息