You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让远程MySQL/MariaDB用户通过本地Linux同名用户认证?

实现远程MySQL/MariaDB用户通过同名本地Linux账号认证的方法

确实存在这种方案,MariaDB的auth_pam插件(MySQL官方也支持PAM认证插件)可以实现让远程MySQL用户直接通过同名本地Linux系统账号的密码完成身份验证,完全不需要同步维护两套密码。

具体配置步骤:

  1. 安装认证插件
    根据你的发行版安装对应插件包:

    • Debian/Ubuntu(MariaDB):
      sudo apt install mariadb-plugin-auth-pam
      
    • RHEL/CentOS(MariaDB):
      sudo dnf install mariadb-server-auth-pam
      
    • MySQL官方版本:
      多数发行版自带auth_pam插件,若缺失可通过官方源安装对应插件包。
  2. 启用插件
    编辑MySQL/MariaDB的主配置文件(比如/etc/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf),在[mysqld]区块添加:

    plugin-load-add = auth_pam.so
    

    保存后重启数据库服务:

    sudo systemctl restart mariadb  # 或 mysql,取决于你的数据库类型
    
  3. 创建关联的MySQL用户
    登录数据库后执行创建用户命令,指定使用auth_pam插件并关联PAM服务名(这里用mysql作为服务名,对应后续的PAM配置文件):

    CREATE USER 'newuser'@'remotehost' IDENTIFIED WITH auth_pam AS 'mysql';
    -- 根据实际需求给用户授权,示例为全权限
    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'remotehost';
    FLUSH PRIVILEGES;
    
  4. 配置PAM验证规则
    创建或编辑/etc/pam.d/mysql文件,添加以下内容,让PAM调用系统本地用户验证模块:

    auth    required    pam_unix.so
    account required    pam_unix.so
    
  5. 调整权限(必要时)
    确保MySQL进程有权限读取系统用户的密码哈希文件/etc/shadow,可将mysql用户加入shadow组:

    sudo usermod -aG shadow mysql
    

    之后重启数据库服务生效。

测试验证

从远程主机执行连接命令,输入Linux系统中newuser的密码即可登录:

mysql -u newuser -h 你的数据库主机IP -p

修改Linux用户newuser的密码后,再次用新密码连接MySQL即可验证同步效果。

内容的提问来源于stack exchange,提问作者tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:20:48