├── 03. 项目准备 part2(介绍 vue-element-admin)
└── 课件
│ ├── vue-admin-template-master.zip
│ └── vue-element-admin-master.zip
├── 04. 项目准备 part3(搭建项目架子)
├── 课件
│ ├── 成品目录.jpg
│ └── 隐藏资源管理器显示的文件.txt
└── 课程代码
│ └── background-system.zip
├── 05. 项目准备 part4(服务器和接口)
├── 课件
│ └── 课堂笔记.md
└── 课堂代码
│ └── mysite2.zip
├── 06. 登录界面制作
└── 课堂代码
│ └── background-system2.zip
├── 07. 登录功能制作
├── 课件
│ └── 登录流程.md
└── 课堂代码
│ └── background-system2.zip
├── 08. 鉴权功能制作
├── 课件
│ └── 鉴权.md
└── 课堂代码
│ └── background-system2.zip
├── 09. 首页标语 part1(页面渲染)
└── 课堂代码
│ ├── background-system2.zip
│ └── mysite-server2.zip
├── 10. 首页标语 part2(完成编辑和图片上传)
└── 课堂代码
│ └── background-system2.zip
├── 11. 文章模块 part1(文章列表渲染、分页、删除文章)
└── 课堂代码
│ └── background-system2.zip
├── 12. 文章模块 part2(文章分类)
└── 课堂代码
│ └── background-system2.zip
├── 13. 文章模块 part3(添加和编辑文章)
├── 代码
│ └── background-system2.zip
└── 课堂笔记
│ └── Markdown 编辑器.md
├── 14. 文章模块 part4(优化添加和编辑文章)
└── 课堂代码
│ └── background-system2.zip
├── 15. 项目管理模块
├── 课件
│ └── download.zip
└── 课堂代码
│ └── background-system2.zip
├── 16. 评论管理和留言板模块
└── 课堂代码
│ └── background-system2.zip
├── 17. 关于我、设置和个人信息模块
└── 课堂代码
│ ├── background-system2.zip
│ └── mysite-client2.zip
└── 18. 项目部署到阿里云
├── 数据的导入与备份.pdf
└── 项目部署.md
/03. 项目准备 part2(介绍 vue-element-admin)/课件/vue-admin-template-master.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/03. 项目准备 part2(介绍 vue-element-admin)/课件/vue-admin-template-master.zip
--------------------------------------------------------------------------------
/03. 项目准备 part2(介绍 vue-element-admin)/课件/vue-element-admin-master.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/03. 项目准备 part2(介绍 vue-element-admin)/课件/vue-element-admin-master.zip
--------------------------------------------------------------------------------
/04. 项目准备 part3(搭建项目架子)/课件/成品目录.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/04. 项目准备 part3(搭建项目架子)/课件/成品目录.jpg
--------------------------------------------------------------------------------
/04. 项目准备 part3(搭建项目架子)/课件/隐藏资源管理器显示的文件.txt:
--------------------------------------------------------------------------------
1 | "**/.git": true,
2 | "**/.svn": true,
3 | "**/.hg": true,
4 | "**/CVS": true,
5 | "**/.DS_Store": true,
6 | // "**/node_modules": true,
7 | "**/shims-tsx.d.ts": true,
8 | "**/shims-vue.d.ts": true,
9 | "**/.browserslistrc": true,
10 | "**/.eslintrc.js": true,
11 | "**/.gitignore": true,
12 | "**/babel.config.js": true,
13 | "**/package-lock.json": true,
14 | "**/README.md": true,
15 | "**/tsconfig.json": true,
16 | "**/.env": true,
17 | "**/.env.development": true,
18 | "**/.env.preview": true,
19 | "**/.env.production": true,
20 | "**/.travis.yml": true,
21 | "**/.env.staging": true,
22 | "**/.eslintignore": true,
23 | "**/.editorconfig": true,
24 | "**/.github": true,
25 | "**/tests": true,
26 | "**/jsconfig.json": true,
27 | "**/jest.config.js": true,
28 | "**/.postcssrc.js": true,
29 | "**/d2-admin.babel": true,
30 | "**/dependencies-cdn.js": true,
31 | "**/README.zh.md": true,
32 | "**/LICENSE": true,
33 | "**/postcss.config.js": true,
34 | "**/README-zh.md": true,
--------------------------------------------------------------------------------
/04. 项目准备 part3(搭建项目架子)/课程代码/background-system.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/04. 项目准备 part3(搭建项目架子)/课程代码/background-system.zip
--------------------------------------------------------------------------------
/05. 项目准备 part4(服务器和接口)/课件/课堂笔记.md:
--------------------------------------------------------------------------------
1 | # 课堂笔记
2 |
3 | ## 服务器地址
4 |
5 |
6 |
7 | https://gitee.com/dev-edu/mysite-server
8 |
9 |
10 |
11 | ## 接口地址
12 |
13 |
14 |
15 | http://mock.duyiedu.com/
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/05. 项目准备 part4(服务器和接口)/课堂代码/mysite2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/05. 项目准备 part4(服务器和接口)/课堂代码/mysite2.zip
--------------------------------------------------------------------------------
/06. 登录界面制作/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/06. 登录界面制作/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/07. 登录功能制作/课件/登录流程.md:
--------------------------------------------------------------------------------
1 | # 登录流程
2 |
3 |
4 |
5 | ## 点击登录按钮后的流程
6 |
7 |
8 |
9 | 
10 |
11 |
12 |
13 | ## 服务器返回数据后的流程
14 |
15 |
16 |
17 | 
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/07. 登录功能制作/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/07. 登录功能制作/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/08. 鉴权功能制作/课件/鉴权.md:
--------------------------------------------------------------------------------
1 | # 鉴权
2 |
3 |
4 |
5 | ## vue-element-admin 中的鉴权流程
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | ## 改造后的鉴权流程
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/08. 鉴权功能制作/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/08. 鉴权功能制作/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/09. 首页标语 part1(页面渲染)/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/09. 首页标语 part1(页面渲染)/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/09. 首页标语 part1(页面渲染)/课堂代码/mysite-server2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/09. 首页标语 part1(页面渲染)/课堂代码/mysite-server2.zip
--------------------------------------------------------------------------------
/10. 首页标语 part2(完成编辑和图片上传)/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/10. 首页标语 part2(完成编辑和图片上传)/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/11. 文章模块 part1(文章列表渲染、分页、删除文章)/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/11. 文章模块 part1(文章列表渲染、分页、删除文章)/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/12. 文章模块 part2(文章分类)/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/12. 文章模块 part2(文章分类)/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/13. 文章模块 part3(添加和编辑文章)/代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/13. 文章模块 part3(添加和编辑文章)/代码/background-system2.zip
--------------------------------------------------------------------------------
/13. 文章模块 part3(添加和编辑文章)/课堂笔记/Markdown 编辑器.md:
--------------------------------------------------------------------------------
1 | ## Markdown 编辑器
2 |
3 |
4 |
5 | 我们使用的是 toast-ui
6 |
7 |
8 |
9 | toast-ui 的官网地址:https://ui.toast.com/
10 |
11 |
12 |
13 | 该编辑器有 vue 版本:https://www.npmjs.com/package/@toast-ui/vue-editor
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/14. 文章模块 part4(优化添加和编辑文章)/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/14. 文章模块 part4(优化添加和编辑文章)/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/15. 项目管理模块/课件/download.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/15. 项目管理模块/课件/download.zip
--------------------------------------------------------------------------------
/15. 项目管理模块/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/15. 项目管理模块/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/16. 评论管理和留言板模块/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/16. 评论管理和留言板模块/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/17. 关于我、设置和个人信息模块/课堂代码/background-system2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/17. 关于我、设置和个人信息模块/课堂代码/background-system2.zip
--------------------------------------------------------------------------------
/17. 关于我、设置和个人信息模块/课堂代码/mysite-client2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/17. 关于我、设置和个人信息模块/课堂代码/mysite-client2.zip
--------------------------------------------------------------------------------
/18. 项目部署到阿里云/数据的导入与备份.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuYi-Edu/vue-component-lib/7c14e12c151780e2c62ead0b742e699550cf3e4f/18. 项目部署到阿里云/数据的导入与备份.pdf
--------------------------------------------------------------------------------
/18. 项目部署到阿里云/项目部署.md:
--------------------------------------------------------------------------------
1 | # 项目部署
2 |
3 |
4 |
5 | ## 1. 项目部署介绍
6 |
7 |
8 |
9 | 当我们的项目开发完毕后,我们需要将项目打包、部署到服务器上,供用户来使用。
10 |
11 |
12 |
13 | 目前,常见的部署方式有两种:
14 |
15 |
16 |
17 | - 后端部署
18 | - 前后端分离部署
19 |
20 |
21 |
22 | ### 1-1 后端部署
23 |
24 |
25 |
26 | 这是最古老的部署方式,也是最常见的一种部署方式。
27 |
28 |
29 |
30 | 我们前端只需要将我们的项目打包好,交给后端开发人员即可。后端开发人员会把我们打包好的项目放到后端的静态资源目录里面。
31 |
32 |
33 |
34 | 
35 |
36 |
37 |
38 | ### 1-2 前后端分离部署
39 |
40 |
41 |
42 | 随着前后端分离开发模式的流行,现在可以采用前后端分离部署的形式。后端部署后端服务器的代码,前端将打包好的资源,部署到前端的服务器上面,用户在做请求的时候,从前端服务器请求静态资源,然后从后端服务器获取数据。
43 |
44 |
45 |
46 | 
47 |
48 |
49 |
50 | 目前前端部署静态资源时,大多采用 Node.js 或者 Nginx 来做静态资源部署,我们这里选择 Nginx。
51 |
52 |
53 |
54 | ## 2. 部署具体流程
55 |
56 |
57 |
58 | ### 2-1 阿里云购买服务器
59 |
60 |
61 |
62 | 首先,我们需要一台服务器,现在流行的云服务器极大的节约了我们部署成本,我们能够很轻松的快速拥有一台服务器。
63 |
64 |
65 |
66 | 阿里云:https://www.aliyun.com/
67 |
68 |
69 |
70 | (1)注册账号
71 |
72 | (2)选择“云服务器 ECS”,点击查看详情
73 |
74 |
75 |
76 | 
77 |
78 |
79 |
80 | (3)立即购买
81 |
82 | 
83 |
84 |
85 |
86 | (4)选择“一键购买”
87 |
88 | 
89 |
90 |
91 |
92 | 镜像选择 CentOS。
93 |
94 |
95 |
96 | 进入到 Linux 系统后,使用命令来进行操作,先介绍几个命令:
97 |
98 |
99 |
100 | ls:查看当前目录下的文件有哪些
101 |
102 | exit:退出系统
103 |
104 | clear:清屏
105 |
106 | touch:创建文件,例如 touch 文件名
107 |
108 | mkdir:创建目录,例如 mkdir 目录名称
109 |
110 | mv:移动目录或者文件,例如 mv 要移动的文件或者目录 要移动到哪儿
111 |
112 | rm -rf 要删除的目录或者文件名:删除目录或者文件
113 |
114 |
115 |
116 | 本地连接云服务器:ssh -p 22 root@xxx.xxx.xxx.xxx
117 |
118 |
119 |
120 | 具体的操作流程见视频。
121 |
122 |
123 |
124 | ### 2-2 安装 Node.js
125 |
126 |
127 |
128 | 安装 Node.js:https://help.aliyun.com/document_detail/50775.html
129 |
130 |
131 |
132 | ### 2-3 安装 MongoDB
133 |
134 |
135 |
136 | 安装依赖库:
137 |
138 |
139 |
140 | `yum -y install pcre*`
141 |
142 | `yum -y install openssl*`
143 |
144 |
145 |
146 | 安装 MongoDB:
147 |
148 |
149 |
150 | 下载:`curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.2.1.tgz`
151 |
152 | 解压:`tar zxvf mongodb-linux-x86_64-4.2.1.tgz`
153 |
154 | 移动:`mv mongodb-linux-x86_64-4.2.1/ /usr/local/mongodb`
155 |
156 | 创建数据文件夹、日志文件和mongo配置文件:
157 |
158 | ```js
159 | mkdir -p /usr/local/mongodb/data/db
160 | touch /usr/local/mongodb/mongod.log
161 | touch /usr/local/mongodb/mongodb.conf
162 | ```
163 |
164 | 在配置文件中加入如下代码:
165 |
166 | ```js
167 | dbpath=/usr/local/mongodb/data/db
168 | logpath=/usr/local/mongodb/log/mongod.log
169 | logappend = true
170 | port = 27017
171 | fork = true
172 | auth = true
173 | ```
174 |
175 |
176 |
177 | 切换到 mongodb 的 bin 下:
178 |
179 | 
180 |
181 |
182 |
183 | 启动:`./mongod --dbpath /usr/local/mongodb/data/db`
184 |
185 |
186 |
187 | `mongod -dbpath=/usr/local/mongodb/data/db --bind_ip 0.0.0.0`
188 |
189 | 指定所有的 *ip* 都可以连接上,当然现在只是暂时的,后面项目部署上去后,肯定是要关闭的。
190 |
191 |
192 |
193 | 可能遇到的错误以及解决方案:
194 |
195 |
196 |
197 | Segmentation fault (core dumped):
198 |
199 | https://blog.csdn.net/weixin_44320761/article/details/107671990
200 |
201 |
202 |
203 | error while loading shared libraries: libssl.so.10,既libssl.so.10缺失库文件的解决办法:
204 |
205 | https://blog.csdn.net/xcyja/article/details/115357818
206 |
207 |
208 |
209 | ### 2-4 上传服务器代码以及数据库数据
210 |
211 |
212 |
213 | 导出数据库的数据,详细参见文档。
214 |
215 |
216 |
217 | 如果是 widnows 系统,参阅:https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html
218 |
219 |
220 |
221 | 接下来,我们需要将打包好的数据库数据压缩包以及服务器代码压缩包(删除 node_modules)上传到云服务器。
222 |
223 |
224 |
225 | windows 系统:可以使用 finalshell(使用方法很简单,安装,连接服务器,将要上传的文件拖动到对应窗口即可)
226 |
227 |
228 |
229 | mac 系统:可以使用自带的 shell 工具。
230 |
231 |
232 |
233 | 打开 shell 工具,选择【新建远程连接】
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 | 选择【安全文件传输(sftp)】,下面要填写用户名和对应的服务器的 ip 地址
242 |
243 |
244 |
245 |
246 |
247 | 点击【连接】,如下:
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 | 使用命令:put 要上传的文件的地址 远程服务器的具体地址
256 |
257 | 例如:put /Users/Jie/Desktop/dbData.zip /usr/local
258 |
259 |
260 |
261 | 解压 zip 压缩包命令:unzip 压缩包名
262 |
263 | 例如:unzip dbData.zip
264 |
265 |
266 |
267 | 启动服务器:进入到服务器目录,安装依赖包,npm start 启动即可
268 |
269 |
270 |
271 | ### 2-5 安装 Nginx 静态资源服务器
272 |
273 |
274 |
275 | (1)下载依赖
276 |
277 | `yum -y install pcre*`
278 |
279 | `yum -y install openssl*`
280 |
281 | (2)下载 wget(类似于迅雷,用来下载文件的)
282 |
283 | `yum install wget`
284 |
285 | (3)下载 nginx
286 |
287 | `wget http://nginx.org/download/nginx-1.21.1.tar.gz`
288 |
289 | (4)解压
290 |
291 | `tar zxvf nginx-1.21.1.tar.gz`
292 |
293 | (5)进入到解压后的目录,编译
294 |
295 | `./configure`
296 |
297 | (6)安装
298 |
299 | `make install`
300 |
301 |
302 |
303 | 安装完毕后,会在同级目录生成一个 nginx 的目录,这个才是我们的服务器目录
304 |
305 |
306 |
307 | nginx 常用命令:
308 |
309 |
310 |
311 | - nginx:启动
312 |
313 | - nginx -v:查看版本
314 |
315 | - nginx -s stop:停止
316 |
317 | - nginx -s reload:重启
318 |
319 |
320 |
321 | ### 2-6 打包静态资源
322 |
323 |
324 |
325 | 打包前台代码:
326 |
327 |
328 |
329 | ```js
330 | npm run build
331 | ```
332 |
333 |
334 |
335 | 打包后台代码:
336 |
337 |
338 |
339 | ```js
340 | npm run build:prod
341 | ```
342 |
343 |
344 |
345 | 将打包好的前台代码放入 nginx 的 html 目录下,将打包好的后台代码放入到 nginx/html/admin 目录下
346 |
347 |
348 |
349 | 修改 nginx 的配置文件,该文件位于 conf 目录下的 nginx.conf,添加代理设置:
350 |
351 |
352 |
353 | ```js
354 | location / {
355 | root html;
356 | index index.html index.htm;
357 | try_files $uri $uri/ /index.html;
358 | }
359 |
360 | location /api {
361 | proxy_pass http://127.0.0.1:7001;
362 | }
363 |
364 | location /res {
365 | proxy_pass http://127.0.0.1:7001;
366 | }
367 |
368 | location /static {
369 | proxy_pass http://127.0.0.1:7001;
370 | }
371 | ```
372 |
373 |
374 |
375 | ### 2-7 进程守护
376 |
377 |
378 |
379 | 在 Linux 中,可以输入:
380 |
381 |
382 |
383 | ```js
384 | nohup command &
385 | ```
386 |
387 |
388 |
389 | 来把进程挂起,这样即使我们退出了远程连接,也能够继续保持进程。
390 |
391 |
392 |
393 | 使用示例:
394 |
395 |
396 |
397 | ```js
398 | nohup npm start &
399 | ```
400 |
401 |
402 |
403 | 挂起进程之后,使用 *exit* 命令来退出远程连接。
404 |
405 |
406 |
407 | ### 2-8 域名映射
408 |
409 |
410 |
411 | 目前为止,我们的项目就已经部署成功了,但是用 IP 访问不是太友好,所以我们来进行域名的映射。
412 |
413 |
414 |
415 | 首先,我们需要购买一个域名。
416 |
417 |
418 |
419 | 
420 |
421 |
422 |
423 | 购买完成后,点击【管理我的域名】
424 |
425 | 
426 |
427 |
428 |
429 | 进去之后,找到要映射的域名,点击【解析】
430 |
431 | 
432 |
433 |
434 |
435 | 进去之后,点击【添加记录】
436 |
437 | 
438 |
439 |
440 |
441 | 填写的内容如下:
442 |
443 |
444 |
445 | 记录类型选择【A】,主机记录填写【www】,记录值填写【IP 地址】
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 | ### 2-9 数据库加密
454 |
455 |
456 |
457 | 为了权限接入可用,必须确保有一个用户是 *userAdmin* 或者 *userAdminAnyDatabase* 的角色在 *admin* 数据库里。
458 | 因此,我们首先创建用户 *root* 用户在 *admin* 数据库里,代码如下:
459 |
460 |
461 |
462 | ```js
463 | use admin # 切换 admin 数据库
464 | db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db: "admin"}]})
465 | ```
466 |
467 |
468 |
469 | 具体操作如下图:
470 |
471 |
472 |
473 | 
474 |
475 | > 注:*db* 可以查看当前所使用的数据库
476 |
477 |
478 |
479 | 
480 |
481 |
482 |
483 | 接下来在其他数据库上面创建用户,但是一定要注意先在 *admin* 数据库上面使用刚才的超级管理员登录,再进行其他数据库用户创建的创建。
484 |
485 | 对应代码如下:
486 |
487 |
488 |
489 | ```js
490 | use amdin
491 | db.auth("root","123456")
492 | ```
493 |
494 |
495 |
496 | 在 *mongodb* 中 *admin* 数据库是一个特别的数据库,这个数据库的用户,可以访问 *mongodb* 中的所有数据库。
497 |
498 |
499 |
500 | 如果要为其他数据库设置用户,步骤也是一样的,首先切换到其他数据库,然后创建用户
501 |
502 |
503 |
504 | ```js
505 | use 数据库名
506 | db.createUser({user:"用户名",pwd:"密码",roles:[{role:"read",db: "数据库名"},{role:"readWrite",db:"数据库名"}]})
507 | ```
508 |
509 |
510 |
511 | 
512 |
513 |
514 |
515 | 最后执行
516 |
517 |
518 |
519 | ```js
520 | db.auth("用户名","密码")
521 | ```
522 |
523 |
524 |
525 | 
526 |
527 |
528 |
529 | 返回 *1*,说明登录成功。
530 |
531 |
532 |
533 | 至此,我们就在数据库上面添加了一个用户,并且设置了账号和密码。
534 |
535 |
536 |
537 | 修改 *mongodb* 的配置文件:
538 |
539 |
540 |
541 | ```js
542 | systemLog:
543 | destination: file #日志输出方式。file/syslog,如果是file,需指定path,默认是输出到标准输出流中
544 | path: /usr/local/mongodb/mongod.log #日志路径
545 | logAppend: true #启动时,日志追加在已有日志文件内还是备份旧日志后,创建新文件记录日志, 默认false
546 |
547 | net:
548 | port: 27017 #监听端口,默认27017
549 | bindIp: 0.0.0.0 #绑定监听的ip,设置为127.0.0.1时,只会监听本机
550 | maxIncomingConnections: 65536 #最大连接数,可接受的连接数还受限于操作系统配置的最大连接数
551 | wireObjectCheck: true #校验客户端的请求,防止错误的或无效BSON插入,多层文档嵌套的对象会有轻微性能影响,默认true
552 |
553 | processManagement:
554 | fork: true # 后台运行
555 |
556 | security:
557 | authorization: enabled # enabled/disabled #开启客户端认证
558 |
559 | storage:
560 | dbPath: /usr/local/mongodb/data/db # 数据库地址
561 | journal:
562 | enabled: true #启动journal,64位系统默认开启,32位默认关闭
563 | ```
564 |
565 |
566 |
567 | 然后在启动 *mongodb* 的时候,指定读取配置文件:
568 |
569 |
570 |
571 | ```js
572 | ./mongod --config /usr/local/mongodb/mongodb.conf
573 | ```
574 |
575 |
576 |
577 | > 查看进程的 PID:
578 | >
579 | > lsof -i:端口号
580 | >
581 | > 例如:lsof -i:27017
582 | >
583 | > 停止进程
584 | >
585 | > kill -9 PID
586 | >
587 | > 例如:kill -9 24311
588 |
589 |
590 |
591 | 远程数据库连接时,需要输入账号以及密码。
592 |
593 |
594 | 接下来就是在你的服务器端代码里面,使用 *mongoose* 的时候,连接的是有权限的数据库,所以需要修改连接字符串:
595 |
596 |
597 |
598 | ```js
599 | 连接字符串修改为:mongodb://username:password@ip:port/database?authSource=admin
600 |
601 | 例如:mongodb://testadmin:testadmin123@88.888.88.888:27017/testmongodb?authSource=admin
602 | # 参数说明
603 | # testadmin 用户名称
604 | # testadmin123 用户密码
605 | # 88.888.88.888 服务器地址
606 | # 27017 端口号码
607 | # testmongodb 连接的数据库
608 | # ?authSource=admin 权限来源
609 | # 至此,可以通过 mongoose 连接数据库
610 | ```
611 |
612 |
613 |
614 | -*EOF*-
615 |
616 |
--------------------------------------------------------------------------------