【问题标题】:MariaDB connection with SequelizeMariaDB 与 Sequelize 的连接
【发布时间】:2019-01-10 05:24:30
【问题描述】:

我一直在使用 Sequelize 检查 MariaDB 的连接性。

const Sequelize = require('sequelize');

// Setting up database (MariaDB) connection
const sequelize = new Sequelize('dbName', 'usr', 'pass', {
  host: 'localhost',
  dialect: 'mariadb'
});

但我收到以下错误:

/home/lt-196/api/node_modules/sequelize/lib/sequelize.js:236
        throw new Error('The dialect ' + this.getDialect() + ' is not supported. Supported dialects: mssql, mysql, postgres, and sqlite.');
        ^

Error: The dialect mariadb is not supported. Supported dialects: mssql, mysql, postgres, and sqlite.
    at new Sequelize (/home/lt-196/api/node_modules/sequelize/lib/sequelize.js:236:15)
    at Object.<anonymous> (/home/lt-196/api/app.js:21:19)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

【问题讨论】:

    标签: javascript mysql node.js mariadb sequelize.js


    【解决方案1】:

    玛丽亚数据库 为了与 MariaDB 兼容,您必须安装包 mariasql@0.1.20 或更高版本。 配置需要如下所示:

    var sequelize = new Sequelize('database', 'username', 'password', {
      dialect: 'mariadb'
    })
    

    或者试试这个:

    MariaSQL:https://www.npmjs.com/package/mariasql

    一个 node.js 绑定到 MariaDB 的非阻塞(MySQL 兼容)客户端库。

    var Client = require('mariasql');
    
    var c = new Client({
      host: '127.0.0.1',
      user: 'foo',
      password: 'bar'
    });
    
    c.query('SHOW DATABASES', function(err, rows) {
      if (err)
        throw err;
      console.dir(rows);
    });
    
    c.end();
    

    推荐使用 MariaSQL。

    【讨论】:

    • MariaSQL 正在工作,谢谢,但第一个选项会更好,但它不工作。
    • 你可以使用'mysql'作为方言。
    【解决方案2】:

    https://github.com/MariaDB/mariadb-connector-nodejs

    NPM

        npm install --save mariadb
        npm install --save sequelize@next
    

    纱线

        yarn add mariadb
        yarn add sequelize@next
    
      const Sequelize = require('sequelize'),
        sequelize = new Sequelize(process.env.db_name, process.env.db_user, process.env.db_pass, {
        dialect: 'mariadb',
        dialectOptions: {
          socketPath: process.env.db_socket,
          timezone: process.env.db_timezone
        },
        pool: {
          min: 0,
          max: 5,
          idle: 10000
        },
        define: {
          charset: 'utf8',
          timestamps: false
        },
        benchmark: false,
        logging: false
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-28
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 2018-12-27
      相关资源
      最近更新 更多