Yii2使用Mongodb配置并解决SyntaxError: missing ] after element list以及Authentication failed

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: Yii2使用Mongodb配置并解决SyntaxError: missing ] after element list以及Authentication failed

环境

lixiaoyu@localhost basic % php -v
PHP 7.1.32 (cli) (built: Feb 17 2020 12:26:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
lixiaoyu@localhost basic % ./yii 
This is Yii version 2.0.35.

安装

mongodb扩展

brew install autoconf
sudo pecl install mongodb
lixiaoyu@localhost ~ % php -m                         
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
intl
json
ldap
libxml
mbstring
mcrypt
mongodb
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
readline
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
[Zend Modules]

安装"yiisoft/yii2-mongodb": “~2.1.0”

添加"yiisoft/yii2-mongodb": "~2.1.0"composer.json.

执行composer update

经过安装之后,我得到的版本是2.1.9

配置

数据库配置

对于新增的数据库,需要增加对应的权限,比如我新增demo数据库,那么不管是admin用户还是其他的新增用户,都需要在admin和demo数据库中新增对应的用户,让他拥有对应的读写权限。

如果不做这一步配置,就会导致报错Authentication failed.

use admin
db.createUser({
    user:'xiaoyu',
    pwd:'123456',
    roles:[{role:'readWrite',db:'admin'}]
})
use demo
db.createUser({
    user:'xiaoyu',
    pwd:'123456',
    roles:[{role:'readWrite',db:'demo'}]
})

这里注意,网上一些资料在roles里面的array里没有加{},这样会导致报错SyntaxError: missing ] after element list,说明看资料要看最新的,旧版本可能会出问题。

配置文件配置

修改config/web.conf,在components中新增

'mongodb' => [
            'class' => '\yii\mongodb\Connection',
            'dsn' => 'mongodb://localhost:27017/demo',
            'options' => [
                "username" => "xiaoyu",
                "password" => "123456"
            ]
        ],

执行操作

//写入数据库
                $collection = Yii::$app->mongodb->getCollection ( 'dom' );
                $res = $collection->insert ($data);
                var_dump($res);

返回结果如下

object(MongoDB\BSON\ObjectId)#168 (1) { ["oid"]=> string(24) "5ebe35608b78250af03a9dc6" }

到此,引入完成。

参考资料

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
NoSQL 网络协议 Unix
第6期 MongoDB配置启动方式
第6期 MongoDB配置启动方式
296 0
|
6月前
|
存储 NoSQL MongoDB
mongodb 存引擎及配置
mongodb 存引擎及配置
|
6月前
|
NoSQL 数据可视化 MongoDB
Windows MongoDB的安装及配置图文说明(非常详细)
Windows MongoDB的安装及配置图文说明(非常详细)
339 0
|
5月前
|
存储 JSON 分布式计算
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
171 0
|
6月前
|
NoSQL Linux MongoDB
MongoDB配置用户名和密码
MongoDB配置用户名和密码
488 0
|
2天前
|
监控 NoSQL 安全
【MongoDB 专栏】MongoDB 的复制集:高可用性配置
【5月更文挑战第10天】MongoDB的复制集是实现数据高可用性的重要机制,由主节点和次节点构成,主节点处理写操作,次节点同步数据确保一致。在主节点故障时,次节点自动提升接替,保证服务不间断。通过复制集,可实现数据保护、持续服务,适用于关键业务系统和数据备份。配置时需关注网络稳定性、节点性能和数据一致性。案例显示,复制集能有效保障服务高可用,防止数据丢失和业务中断,是现代数据库管理的关键工具。在数据驱动的世界,复制集为高可用性提供了坚实保障。
【MongoDB 专栏】MongoDB 的复制集:高可用性配置
|
13天前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 1
|
2月前
|
存储 缓存 NoSQL
|
3月前
|
运维 NoSQL Linux
MongoDB详解(六)——MongoDB主从同步配置
MongoDB详解(六)——MongoDB主从同步配置
70 5
|
4月前
|
监控 NoSQL MongoDB
第5期 MongoDB配置用户名密码认证登录
第5期 MongoDB配置用户名密码认证登录
577 0