欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用koa-mysql-session时报错

程序员文章站 2022-04-21 15:29:38
描述在本地测试代码没问题,但是部署到服务器上时就报错。错误> cross-env WEBPACK_TARGET=node NODE_ENV=production node ./server/app.jstruethe server is start at port 3333/usr/share/ng... ......
  • 描述
    在本地测试代码没问题,但是部署到服务器上时就报错。

  • 错误

> cross-env webpack_target=node node_env=production node ./server/app.js

true
the server is start at port 3333
/usr/share/nginx/nav/server/node_modules/koa-mysql-session/node_modules/co/index.js:292
    throw err;
    ^

error: er_index_column_too_long: index column size too large. the maximum column size is 767 bytes.
  • 原因:因为mysql的版本差异导致的,本地5.7,服务器上5.6。koa-mysql-session是4年前的包不建议使用。

    单列索引的长度的限制:5.6里面默认不能超过767bytes,5.7不超过3072bytes

  • 解决:
    手动创建mysql_session_store

    create table `_mysql_session_store` (
    `id` varchar(255) not null,
    `expires` bigint(20) default null,
    `data` text,
    primary key (`id`)
    ) engine=innodb default charset=utf8 row_format=dynamic;
  • 参考: mysql中索引的长度的限制

  • 推荐: