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

无法通过express-mysql-session连接MariaDB的问题求助

解决express-mysql-session连接MariaDB的auth_gssapi_client认证错误

问题分析

错误提示Server requests authentication using unknown plugin auth_gssapi_client,核心原因是MariaDB服务器要求的auth_gssapi_client认证插件不在mysql2(express-mysql-session依赖的底层驱动)默认支持范围内,且你希望保留mysql_native_password作为主要认证方式。

解决方案

方案1:强制MariaDB用户使用mysql_native_password认证

你之前尝试的多认证语句可能因语法或版本兼容性未生效,直接强制指定用户仅使用mysql_native_password:

ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'myPassword';
FLUSH PRIVILEGES;

执行后用以下语句验证:

SELECT user, host, plugin FROM mysql.user WHERE user = 'root' AND host = '127.0.0.1';

确保返回结果中plugin字段为mysql_native_password。

方案2:在express-mysql-session配置中指定认证插件

若需保留多认证模式,可在session配置里添加authPlugin参数,强制驱动使用mysql_native_password:

const sessionOptions = {
    host: process.env.MARIADB_HOST,
    port: process.env.MARIADB_PORT,
    user: process.env.MARIADB_USER,
    password: process.env.MARIADB_PASSWORD,
    database: process.env.MARIADB_DATABASE,
    authPlugin: 'mysql_native_password' // 新增配置项
};

该配置会让mysql2驱动忽略服务器推荐的auth_gssapi_client,直接使用指定插件完成认证。

方案3:替换为express-mariadb-session替代库

如果上述方案均无效,可尝试使用专为MariaDB优化的会话存储库express-mariadb-session,它基于官方mariadb驱动,兼容性更好:

  1. 安装依赖:
npm install express-mariadb-session
  1. 修改配置代码:
const session = require('express-session');
const MariaDBStore = require('express-mariadb-session')(session);

const sessionOptions = {
    host: process.env.MARIADB_HOST,
    port: process.env.MARIADB_PORT,
    user: process.env.MARIADB_USER,
    password: process.env.MARIADB_PASSWORD,
    database: process.env.MARIADB_DATABASE
};

const sessionStore = new MariaDBStore(sessionOptions);
// 后续express-session的配置保持不变

补充说明

  • 你代码中的key: 'session_cookie_name'用于设置存储session ID的Cookie名称,默认值为connect.sid,修改它可避免与其他使用express-session的服务冲突,并非导致认证错误的原因。
  • 生产环境务必将cookie.secure设为true,配合HTTPS协议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:49:52