带有 mariadb 的节点 mysql

Posted

技术标签:

【中文标题】带有 mariadb 的节点 mysql【英文标题】:Node-mysql with mariadb 【发布时间】:2014-06-07 05:25:11 【问题描述】:

我已经使用 mariadb 作为 mysql 服务器。但是,我不确定使用为 mysql 设计的节点包是否适合用于 mariadb。

其实有两个node包:

为mscdex/node-mariasql 为mysqljs/mysql

我目前使用 mysql,因为它看起来相当成熟和维护。 它似乎也适用于我身边的 mariadb。

对于 mariadb 服务器使用 mysqljs/mysql 而不是 mscdex/node-mariasql 是否存在任何限制/不兼容/安全问题?

谢谢

【问题讨论】:

【参考方案1】:

不,您使用哪个都没有关系。 MariaDB 向后兼容 MySQL。如果需要,您甚至可以使用 node-mariasql 连接到 MySQL。

【讨论】:

谢谢。看看你的包源,我真的很喜欢依赖动态库(libmariadbclient)的想法。我可能最终更喜欢 node-mariasql。【参考方案2】:

您好,我目前正在使用 Maria DB 进行项目,并且正在使用 node-mysql 进行生产。它对我来说真的很好用。不使用 node-mariadb 的原因是包的评级数量和成熟度。

【讨论】:

【参考方案3】:

我对 node-mariasql 的印象是它在支持所有数据库操作方面不成熟(特别是准备好的插入操作是乏善可陈的 atm),而且文档也很差。我建议将 node-mysql 用于生产应用程序。

【讨论】:

【参考方案4】:

我过去使用过mariasql。它没有将字段转换为正确的 JS 类型。一切都以字符串(甚至整数)的形式返回。我要试用mysql 驱动程序。如果我想并行执行,我必须为每个查询使用不同的连接,这似乎很奇怪。对我来说似乎应该抽象出来。

【讨论】:

【参考方案5】:

使用此代码有助于使用 NodeJS 连接 xampp mysql

  var mysql      = require('mysql');
    var connection = mysql.createConnection(
      host     : 'localhost',
      user     : 'root',
      password : '',
      database : '<database name>'
    ); 
    connection.connect(function(err) 
        if (err) 
        console.error('error connecting: ' + err.stack);
        return;
    
    else
        console.log("database has been connected");
    
    );
    var queryString = 'SELECT * FROM <table name>'; 
    connection.query(queryString, function(err, rows, fields) 
        if (err) throw err; 
        for (var i in rows) 
            console.log('filesname: ', rows[i].fieldname);
        
    ); 
    connection.end();

【讨论】:

虽然欢迎使用此代码 sn-p,并且可能会提供一些帮助,但它会是 howwhy 的 greatly improved if it included an explanation 这解决了问题。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。

以上是关于带有 mariadb 的节点 mysql的主要内容,如果未能解决你的问题,请参考以下文章

使用 MariaDB/Mysql 进行多从属的多主复制

超时错误重新启动 mysql (mariadb) 这是 3 节点 galera 集群中的节点之一

mariadb数据库的主从复制

Mariadb之半同步复制集群配置

MariaDB:带有子查询的 group_concat 失败

MariaDB GALERA 集群双节点部署