本部分只做个人纪录
**
1.安装mongodb
**
本部分为尚硅谷的电影推荐系统的文档,具体以实际存放位置为准
// 通过WGET下载Linux版本的MongoDB
[bigdata@linux ~]$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz
// 将压缩包解压到指定目录
[bigdata@linux backup]$ tar -xf mongodb-linux-x86_64-rhel62-3.4.3.tgz -C ~/
// 将解压后的文件移动到最终的安装目录
[bigdata@linux ~]$ mv mongodb-linux-x86_64-rhel62-3.4.3/ /usr/local/mongodb
// 在安装目录下创建data文件夹用于存放数据和日志
[bigdata@linux mongodb]$ mkdir /usr/local/mongodb/data/
// 在data文件夹下创建db文件夹,用于存放数据
[bigdata@linux mongodb]$ mkdir /usr/local/mongodb/data/db/
// 在data文件夹下创建logs文件夹,用于存放日志
[bigdata@linux mongodb]$ mkdir /usr/local/mongodb/data/logs/
// 在logs文件夹下创建log文件
[bigdata@linux mongodb]$ touch /usr/local/mongodb/data/logs/ mongodb.log
// 在data文件夹下创建mongodb.conf配置文件
[bigdata@linux mongodb]$ touch /usr/local/mongodb/data/mongodb.conf
// 在mongodb.conf文件中输入如下内容
[bigdata@linux mongodb]$ vim ./data/mongodb.conf
#端口号port = 27017
#数据目录
dbpath = /usr/local/mongodb/data/db
#日志目录
logpath = /usr/local/mongodb/data/logs/mongodb.log
#设置后台运行
fork = true
#日志输出方式
logappend = true
#开启认证
#auth = true
// 启动MongoDB服务器
[bigdata@linux mongodb]$ sudo /usr/local/mongodb/bin/mongod -config /usr/local/mongodb/data/mongodb.conf
// 访问MongoDB服务器
[bigdata@linux mongodb]$ /usr/local/mongodb/bin/mongo
// 停止MongoDB服务器
[bigdata@linux mongodb]$ sudo /usr/local/mongodb/bin/mongod -shutdown -config /usr/local/mongodb/data/mongodb.conf
其中,本地的虚拟机没有按照文档的内容
2.启动部分如下
,注意,具体地址按照自己的情况来,不知道地址的可以看mongodb.conf文件的path配置,或者定位到bin目录使用pwd命令查看地址
[zhouyu@firstwork ~]$ sudo /home/zhouyu/mongodb/bin/mongod -config /home/zhouyu/mongodb/data/mongodb.conf
,再或者cd多次直到bin的上级目录,使用
[ zhouyu@firstwork mongodb]$ sudo bin/mongod -config ./data/mongodb.conf
总之这种启动方式注意mongodb.conf和bin目录就行,把握这两个就万变不离其宗了
然后是访问MongoDB服务器:
[zhouyu@firstwork ~]$ cd mongodb/
[zhouyu@firstwork mongodb]$ bin/mongod -config ./data/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 2828
child process started successfully, parent exiting
[zhouyu@firstwork mongodb]$ jps
2923 Jps
[zhouyu@firstwork mongodb]$ ps -ef | grep mongo
zhouyu 2828 1 0 18:01 ? 00:00:02 bin/mongod -config ./data/mongodb.conf
zhouyu 2958 2719 0 18:08 pts/0 00:00:00 grep --color=auto mongo
[zhouyu@firstwork mongodb]$ bin/mongo
MongoDB shell version v3.4.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3
Server has startup warnings:
2024-03-20T18:01:04.145+0800 I CONTROL [initandlisten]
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten]
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten]
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten]
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten]
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 2048 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files.
2024-03-20T18:01:04.146+0800 I CONTROL [initandlisten]
> show dbs
admin 0.000GB
local 0.000GB
在Linux的火狐浏览器中访问 http://192.168.220.131:27017/ 可得如下内容:这是
由于mongodb不支持http请求的原因,不必介意,可以视为虚拟机内部可以访问mongodb了
如果你不知道ip,使用ifconfig命令即可知道 ,那个ensxxx的inet就是你的ip,端口号默认是
27017,除非你要指定了,不然默认即可
[zhouyu@firstwork ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.220.131 netmask 255.255.255.0 broadcast 192.168.220.255
inet6 fe80::257a:5178:2031:5aab prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c8:52:c1 txqueuelen 1000 (Ethernet)
RX packets 31184 bytes 13846558 (13.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8065 bytes 1695812 (1.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 360 bytes 33822 (33.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 360 bytes 33822 (33.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:1d:cd:84 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
有用信息:
inet 192.168.220.131 ip地址
netmask 255.255.255.0 子网掩码
broadcast 192.168.220.255 广播地址
但是问题是在外部浏览器无法访问,这里就需要考虑两个问题
第一是防火墙的问题
[zhouyu@firstwork ~]$ su root
密码:
[root@firstwork zhouyu]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2024-03-20 19:52:34 CST; 2h 11min ago
Docs: man:firewalld(1)
Main PID: 773 (firewalld)
Tasks: 2
CGroup: /system.slice/firewalld.service
└─773 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
3月 20 19:52:34 firstwork systemd[1]: Starting firewalld - dynamic firewal.....
3月 20 19:52:34 firstwork systemd[1]: Started firewalld - dynamic firewall...n.
3月 20 19:52:35 firstwork firewalld[773]: WARNING: AllowZoneDrifting is ena....
Hint: Some lines were ellipsized, use -l to show in full.
[root@firstwork zhouyu]# systemctl stop firewalld.service
[root@firstwork zhouyu]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 三 2024-03-20 22:04:31 CST; 5s ago
Docs: man:firewalld(1)
Process: 773 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 773 (code=exited, status=0/SUCCESS)
3月 20 19:52:34 firstwork systemd[1]: Starting firewalld - dynamic firewal.....
3月 20 19:52:34 firstwork systemd[1]: Started firewalld - dynamic firewall...n.
3月 20 19:52:35 firstwork firewalld[773]: WARNING: AllowZoneDrifting is ena....
3月 20 22:04:30 firstwork systemd[1]: Stopping firewalld - dynamic firewal.....
3月 20 22:04:31 firstwork systemd[1]: Stopped firewalld - dynamic firewall...n.
Hint: Some lines were ellipsized, use -l to show in full.
[root@firstwork zhouyu]# exit
有三点注意:
1.有些命令需要确定是不是在root下进行,防火墙的命令是需要切换的
切换root 使用 su root即可
systemctl status firewalld 是查看状态 systemctl stop firewalld.service 是停用,不过只是单次这意味着如果你重启后该命令就失效了,防火墙仍然开启,我就吃亏在这上面 systemctl enable firewalld.service 开启开机启动 systemctl disable firewalld.service 关闭开机启动 :
3.用完root后记得exit切换会普通用户
第二是修改mongod.conf文件,还记得前面的配置吗
我们需要加点东西
如果是这种,写bind_ip即可,如果是yaml格式
这种就需要按照驼峰规则了
查看到conf文件过程:
[zhouyu@firstwork mongodb]$ cd data
[zhouyu@firstwork data]$ ls
db logs mongodb.conf
[zhouyu@firstwork data]$ cd mongodb.conf
bash: cd: mongodb.conf: 不是目录
[zhouyu@firstwork data]$ vim mongodb.conf
之前我们只是在虚拟机内部的浏览器查看,现在我们可以在外部,访问虚拟机了
在使用studio 3T连接之前
在外部的浏览器使用之前在火狐的ip:端口号如法炮制,如果得到相同内容,则说明可以尝试了
这里还需要提醒一点,我的auth=true是关闭的,就是说没开启认证,我不清楚开启认证对于后面连接的是否需要连接ssh部分有影响,这里提醒一下,后期有机会补充
我使用的是studio 3T,下载不赘述
选下面的
输入后点击测试,成功后点击ok->save即可
如果右侧没有这些,则直接退出重进一般会有
点击运行scala,连接mongodb数据库
出现相关内容
至此成功
总之,该部分写的过程我查了一些资料,可惜没有完整走一遍,都是东拼西凑。我自己也纪录的不详细,时间仓促,只能写出来这点东西了。希望可以给别人一些帮助吧。
我看csdn有些东西还要收费或者开会员。这帮人拿着不知道转了几手的东西居然还想收费?能不能有点开源精神?