我已经安装了MongoDB v4。0获取Nodejs中it事务的最惊人功能,mongodb作为驱动程序。
当我尝试使用事务会话时,我遇到了以下错误:
MongoError:事务号仅允许在副本集成员或mongos上使用。
那是什么,我怎么才能摆脱它?
欢迎提出任何建议。
我得到了解决方案,它只是MongoDB配置文件中的三行配置。
从MongoDB图集切换并在带有WHM的CentOS 7 VPS上安装MongoDB v 4.4.0后,我也遇到了这个问题。
run rs解决方案对我不起作用,但我在没有任何第三方工具的情况下成功地解决了这个问题,遵循以下步骤:
最有效的方法是使用命令mongo
输入MongoDB shell检查方法
db.shutdownServer()
您将无法使用MongoDB服务器。对我来说,关闭进程花了太长时间,然后我用以下命令终止了进程:
systemctl stop -f mongod
如果终止了mongod进程,则可能需要运行mongod--dbpath/var/db--repair
var/db
应该指向您的数据库目录。
对于replicaSet设置步骤,请查看/etc/mongod。conf文件,查找复制值行,您应该添加以下行:
replication:
oplogSizeMB: <int>
replSetName: <string>
enableMajorityReadConcern: <boolean>
在下一步中使用replSetName值。
这些设置的示例:
oplogSizeMB: 2000
replSetName: rs0
enableMajorityReadConcern: false
将replSetName的值添加到连接URL中
如果您使用我们示例中的名称rs0
,那么您应该在您的DB连接中添加URL查询副本集=rs0
输入命令:systemctl start monstar
使用命令mongo
进入MongoDB shell,输入命令rs.initiate()
现在您应该在您的副本数据库中。
事务
无疑是MongoDB 4.0
中最令人兴奋的新功能。但不幸的是,大多数用于安装和运行MongoDB的工具都会启动独立服务器,而不是副本集。如果您尝试在独立服务器上启动会话,您会收到此错误。
为了使用事务,您需要一个MongoDB副本集,并且在本地启动副本集进行开发是一个涉及的过程。新的run-rs npm模块
使启动副本集变得容易。运行run-rs是启动副本集所需要的一切,run-rs甚至会为您安装正确版本的MongoDB。
Run rs除了节点之外没有外部依赖项。js和npm。您不需要安装Docker、homebrew、APT、Python甚至MongoDB。
使用npm的-g标志全局安装run rs。您还可以在包中列出run rs。json文件的devdependences。
npm install run-rs -g
接下来,使用--version标志运行run-rs。Run rs将下载MongoDB v4。0.0为您。别担心,它不会覆盖您现有的MongoDB安装。
run-rs -v 4.0.0 --shell
然后在连接字符串中使用replicaSet=rs。
您可以在此处找到有关它的更多详细信息。
问题内容: 这篇文章是JPA的延续。如何在持久化后从数据库获取值 当我执行以下命令时,我将遵循以下异常,该如何解决呢? DAOImpl 代码 applicationContext.xml 问题答案: 我猜这里的问题是,尽管您已经为事务管理器定义了bean,但是您没有注释启用弹簧事务的create()方法。 还要删除该语句,因为现在所有事务管理都将在spring之前完成,如果您保留该语句不变,则将再
我目前在Spring集成中处理JMS事务时遇到困难。我正在创建的集成流程如下所示: JMS队列A- 我希望在JMS队列B和JMS队列C上保证消息的传递。然而,为了使传递稍微困难一些,我希望将导致错误的消息存储在单独的JMQ队列上,并在队列a上确认消息。 但是,如果我对此进行测试并在队列C上设置消息之前抛出错误(让我们假设队列B首先完成,队列C其次完成),事务将确认队列A并在队列B和错误队列上提交消
问题内容: MySQL是否允许使用嵌套事务? 问题答案: 支持。 您可以执行以下操作:
如果我有一个在类级别上标记为的基本Dao类,这将导致Dao的每个调用都在它自己的事务中运行。 如果我在某个地方创建了一个方法,它使用多个对不同道方法的调用,会怎么样?这些调用中的每一个都将在自己的事务中运行,还是事务将被包装? 如果它被包装,你会认为这是一个很好的做法,在一个通用的DAO类中有<代码> @事务性< /代码>注释,以便DAO可以直接用作<代码> @ AutoWordBaseDaO。
支持项 完全支持非跨库事务,例如:仅分表,或分库但是路由的结果在单库中; 完全支持因逻辑异常导致的跨库事务。例如:同一事务中,跨两个库更新。更新完毕后,抛出空指针,则两个库的内容都能回滚。 不支持项 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提交之前,第一个库宕机,则只有第二个库数据提交。
问题内容: 我正在尝试使用pyodbc创建一个SQL Server数据库。 失败并显示此错误 多语句事务中不允许使用CREATE DATABASE语句 它失败,因为该方法启动了事务,并且无法在事务内运行。 那么还有其他方法可以使用python执行命令吗? 问题答案: 建立连接时,pyodbc的默认设置符合Python的DB- API规范。因此,当执行第一个SQL语句时,ODBC将开始有效的数据库事