今天要比昨天吃苦的能力更强

MongoDB进击 Linux单机安装

                          由于没有使用过MongoDB,不能掉队,第一步从安装开始

1.到mongodb官网下载对应系统的压缩包,。(注意不要选错系统版本,也可以在本地下载好后上传到云服务器)

2.默认下载路径是到用户目录下的Downloads目录,将其解压

链接:https://pan.baidu.com/s/11nKI-cDB62viwWKIEoNYDQ
提取码:xdf2

tar -zxvf mongodb-linux-x86_64-4.0.10.tgz

3.将解压后的文件夹移动到/usr/local/的mongodb目录下

mv -r mongodb-linux-x86_64-4.0.10 /usr/local/mongodb

4.配置系统文件profile

sudo vi /etc/profile

插入下列内容:

export MONGODB_HOME=/usr/local/mongodb  
export PATH=$PATH:$MONGODB_HOME/bin

注意保存后要重启系统配置:

source /etc/profile

5.创建用于存放数据和日志文件的文件夹,并修改其权限增加读写权限

复制代码
cd /usr/local/mongodb
sudo mkdir -p data/db
sudo chmod -r 777 data/db sudo mkdir logs cd logs touch mongodb.log
复制代码

 

 

6.mongodb启动配置

进入到bin目录,增加(这个配置文件需要手动添加)一个配置文件:

cd /usr/local/mongodb/bin  
sudo vi mongodb.conf

插入下列内容:

dbpath = /usr/local/mongodb/data/db #数据文件存放目录  
logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录  
port = 27017  #端口  
fork = true  #以守护程序的方式启用,即在后台运行  
bind_ip_all = true #外网可以连接
# nohttpinterface = true  这个配置需要去掉,不然会出现一个如下错误
# Error parsing INI config file: unrecognised option 'nohttpinterface'

7. 启动mongod数据库服务,以配置文件的方式启动

cd /usr/local/mongodb/bin
./mongod -f mongodb.conf

8.连接mongodb数据库

./mongo

 9 .启动浏览器访问 

 

 

10 可视化工具安装

https://blog.csdn.net/weixin_39999535/article/details/81383196

 

MongoDB常用命令
[root@snails ~]# ps -ef|grep mongod
[root@snails ~]# mongo --host=127.0.0.1 --port=27017
MongoDB shell version: 3.2.7
connecting to: 127.0.0.1:27017/test

> show dbs #显示数据库列表
> show collections #显示当前数据库中的集合(类似关系数据库中的表)
> show users #显示用户
> use <db name> #切换当前数据库,如果数据库不存在则创建数据库。
> db.help() #显示数据库操作命令,里面有很多的命令
> db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
> db.foo.find() #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
> db.foo.find( { a : 1 } ) #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

MongoDB没有创建数据库的命令,但有类似的命令。 如:如果你想创建一个“myTest”的数据库,先运行use
myTest命令,之后就做一些操作(如:db.createCollection(‘user’)),这样就可以创建一个名叫“myTest”的数据库。

其他命令
> db.dropDatabase() #删除当前使用数据库
> db.cloneDatabase("127.0.0.1") #将指定机器上的数据库的数据克隆到当前数据库
> db.copyDatabase("mydb", "temp", "127.0.0.1") #将本机的mydb的数据复制到temp数据库中
> db.repairDatabase() #修复当前数据库
> db.getName() #查看当前使用的数据库,也可以直接用db
> db.stats() #显示当前db状态
> db.version() #当前db版本
> db.getMongo() #查看当前db的链接机器地址
> db.serverStatus() #查看数据库服务器的状态

 

11 添加密码

编辑mongdb.conf 添加auth=true#开启认证登录

进入终端

尝试敲入以下命令:db; use admin; db.auth("admin", "admin")

>db
test
>use admin
switched to db admin

当我们敲入db.auth("admin", "admin")时,返回为0,出现Error: Authentication failed。也正是这个原因导致robomongo无法连接

>db.auth("admin","admin")
Error: Authentication failed.
0

解决方法是手动添加admin账户,创建成功后,再次db.auth("admin", "admin"),返回1

复制代码
>db.createUser(  
  {  
    user: "admin",  
    pwd: "admin",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}  
复制代码
>db.auth("admin","admin")
1

 

      如果只是单纯的把玩建议吧角色设置为readWrite

 

 

 

1、数据库用户角色:read、readWrite;
2、数据库管理角色:dbAdmin、dbOwner、userAdmin;
3、集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4、备份恢复角色:backup、restore;
5、所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6、超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7、内部角色:__system

read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
       

https://cloud.tencent.com/developer/article/1433210

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

 

 

spring:
data:
mongodb:
uri: mongodb://******:27017/scc_logistics

 

 

@Data
@Document(collection = "scc_student")
public class Student{
//@Id
private String id;
private String username;
private String password;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat( pattern ="yyyy-MM-dd HH:mm:ss", timezone ="GMT+8")
private Date birthday;

}

 

 

 

@Autowired
private MongoTemplate mongoTemplate;


@RequestMapping(value = "/test")
public SimpleResponse distributeOrder() {

/*for (int i = 0; i <5 ; i++) {
Student student = new Student();
String id = IdUtil.objectId();
System.out.println("IdUtil_id:" + id);
student.setId(id);
student.setBirthday(new Date());
student.setPassword("987654" + i);
student.setUsername("fsadfas12" + i);
//加入
mongoTemplate.save(student);
}*/
/*Query query = new Query(Criteria
.where("username").is("test"));
List<Student> students = mongoTemplate.find(query, Student.class);
System.out.println("students" + JSON.toJSONString(students));*/
/*String regex = String.format("%s%s%s", "^.*", "test", ".*$");
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Query query1 = new Query(Criteria.where("username").regex(pattern));
List<Student> students1 = mongoTemplate.find(query1, Student.class);
*/


Date startDate = DateUtil.parse("2022-06-01 09:40:00", "yyyy-MM-dd HH:mm:ss");
Date endDate =DateUtil.parse("2022-06-01 09:45:00", "yyyy-MM-dd HH:mm:ss");
Criteria startTime = Criteria.where("birthday").gte(startDate);
Criteria endTime = Criteria.where("birthday").lte(endDate);
Criteria criteria = new Criteria().andOperator(startTime, endTime);
Query query = new Query(criteria);
List<Student> documentList = mongoTemplate.find(query, Student.class);
return new SimpleResponse(documentList);

}

 

 

 

posted @ 2019-05-31 10:31  野程序猿小刘  阅读(505)  评论(0编辑  收藏  举报