MariaDB 与 Sequelize 的连接
Posted
技术标签:
【中文标题】MariaDB 与 Sequelize 的连接【英文标题】:MariaDB connection with 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
【问题讨论】:
【参考方案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
)
【讨论】:
以上是关于MariaDB 与 Sequelize 的连接的主要内容,如果未能解决你的问题,请参考以下文章
Sequelize - 使用 MariaDB 的 where 子句中的地理位置
sequelize(和 sequelize-cli)queryInterface.createTable 在 PostgreSQL 上,PK id 类型为 UUID 和 defaultValue:Se
从未在 Lambda 函数中调用与 Sequelize 的 RDS 连接