Knex: 在knex池连接上设置MySQL sql_mode

创建于 2016-04-18  ·  3评论  ·  资料来源: knex/knex

你好,

我想将sql_modeNO_ENGINE_SUBSTITUTION ,以绕过MySQL服务器v5.7.x中的默认strict mode

可以通过在MySQL客户端控制台中键入SHOW VARIABLES LIKE 'sql_mode';来检查sql_mode MySQL变量。

  • MySQL服务器v5.6.x的默认设置
    NO_ENGINE_SUBSTITUTION
  • MySQL服务器v5.7.x的默认设置
    ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

我当前的解决方法是修改/etc/mysql/my.cnf文件中的mysqld部分:
sql_mode='NO_ENGINE_SUBSTITUTION'

我想将其保留在Web应用程序级别而不是数据库服务器级别。 任何建议表示赞赏。

谢谢!

question

最有用的评论

嗨@ rhys-vdw,

我不知道这是否是获得上述结果的官方方法,但是在连接设置的pool部分中重写afterCreate函数对我来说却是个窍门。 来源:

dbase: {
          client: 'mysql',
          connection: {
            socketPath: '/var/run/mysqld/mysqld.sock',
            database : 'db_name',
            user: 'db_username',
            password : 'db_password',
            timezone: 'UTC',
            charset: 'utf8mb4_unicode_ci',
            supportBigNumbers:true
          },
          pool: {
            min: 2,
            max: 10,
            afterCreate: function(conn, cb) {
              conn.query('SET sql_mode="NO_ENGINE_SUBSTITUTION";', function (err) {
                cb(err, conn);
              });
            }
          }
        }

此致,
路卡

所有3条评论

嗨@ rhys-vdw,

我不知道这是否是获得上述结果的官方方法,但是在连接设置的pool部分中重写afterCreate函数对我来说却是个窍门。 来源:

dbase: {
          client: 'mysql',
          connection: {
            socketPath: '/var/run/mysqld/mysqld.sock',
            database : 'db_name',
            user: 'db_username',
            password : 'db_password',
            timezone: 'UTC',
            charset: 'utf8mb4_unicode_ci',
            supportBigNumbers:true
          },
          pool: {
            min: 2,
            max: 10,
            afterCreate: function(conn, cb) {
              conn.query('SET sql_mode="NO_ENGINE_SUBSTITUTION";', function (err) {
                cb(err, conn);
              });
            }
          }
        }

此致,
路卡

感谢@lanceschi ,我没有回应,因为我不知道解决方案是什么。 我想知道是否应该在FAQ中添加有关此回调的信息?

回调已记录,正在关闭

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

fsebbah picture fsebbah  ·  3评论

saurabhghewari picture saurabhghewari  ·  3评论

zettam picture zettam  ·  3评论

koskimas picture koskimas  ·  3评论

tjwebb picture tjwebb  ·  3评论