# 常用中间件安装

中间件的安装推荐使用 apt 包管理器安装,速度更快。

# MySQL

$ apt update
$ apt install mysql-server mysql-client -y

等待安装完成后即可启动 MySQL 服务:

$ service mysql start

Cloud Studio 进程管理使用 init.d

启动后即可使用 mysql 命令连接,注意此时 MySQL 仅有 root 用户,且无密码保护:

$ mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.28-0ubuntu0.20.04.3 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

一般情况下,开发时都会使用密码,因此可以运行 mysql_secure_installation 执行安装初始化(启动前需要确保 mysql 服务正在运行)

接下来会进入 MySQL 安装交互模式,可以根据需要进行选择:

  • 是否设置密码,输入 Y ,回车。
  • 设置密码安全级别,使用最低安全级别即可,输入 0 ,回车。
  • 输入 root 密码,例如我在此输入 123456,回车。

请注意:操作系统为了安全起见,输入密码时输入的字符是不可见的

  • 重复 root 密码。输入 123456,回车。
  • 是否继续,输入 Y,回车。
  • 是否移除匿名用户,选择 n 回车,表示不移除。
  • 是否禁用 root 用户登录,输入 n 回车,表示不禁用。
  • 是否删除测试数据库, 输入 n 回车,表示不删除。
  • 刷新数据库权限表,输入 Y 回车。

初始化完成后,即可使用密码进行登录操作了:

$ mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.28-0ubuntu0.20.04.3 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

其中 mysql: [Warning] Using a password on the command line interface can be insecure. 表示不推荐在命令行输入密码,你可以使用 mysql -uroot -p 回车,会进入交互模式输入密码,此模式下输入密码不会被屏幕所记录,因此更安全,MySQL 也不会再显示警告。

# Redis

$ apt update
$ apt install redis-server -y

等待安装完成后即可启动 Redis 服务:

注意这里有问题,需要修改一下 /etc/init.d/redis-server 文件,找到 start-stop-daemon -v --start --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS 行,去掉 --chuid redis:redis ,否则服务无法正常停止。

$ service redis-server start

启动后即可使用 redis-cli 命令连接,注意此时无密码保护:

$ redis-cli
127.0.0.1:6379> keys *
(empty list or set)

要设置密码可以修改 /etc/redis/redis.conf 配置文件,找到 # requirepass foobared 行,取消前面的 # 符号,foobared 是默认密码,可以将它修改为任意字符串。例如,我这里设置为 123456

使用 service redis-server restart 重启 redis 服务。

进入 redis-cli 连接 redis 后,使用 auth 123456 即可认证 redis 密码。

redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

可以看哦,刚进入 redis-cli 时,输入 keys * 指令提示需要认证,输入 auth 123456 后,则可以使用任何指令了。

# MongoDB

$ apt-get update
$ apt-get install -y mongodb

等待安装完成后即可启动 MongoDB 服务:

$ service mongodb start

启动后即可使用 mongo 命令连接, 注意此时无密码保护:

$ mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2022-04-26T15:29:31.343+0800 I CONTROL  [initandlisten] 
2022-04-26T15:29:31.343+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2022-04-26T15:29:31.343+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2022-04-26T15:29:31.343+0800 I CONTROL  [initandlisten] 
2022-04-26T15:29:31.344+0800 I CONTROL  [initandlisten] 
2022-04-26T15:29:31.344+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2022-04-26T15:29:31.344+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2022-04-26T15:29:31.344+0800 I CONTROL  [initandlisten] 
2022-04-26T15:29:31.344+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 10240 processes, 1048576 files. Number of processes should be at least 524288 : 0.5 times number of files.
2022-04-26T15:29:31.344+0800 I CONTROL  [initandlisten] 
> 

# 简单使用

> db
test
> db.createCollection('test')
{ "ok" : 1 }
> db.test.insert({ hello: "world" })
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("6267a2d1dda0f5afa998af20"), "hello" : "world" }

# 配置数据库连接密码

  1. 切到 admin 数据库
> use admin
switched to db admin
  1. 创建管理员账号
> db.createUser({ user: "cs", pwd: "123456", roles: ["root"] })
Successfully added user: { "user" : "cs", "roles" : [ "root" ] }
// 创建完成后退出 mongo 命令行
> exit
  1. 修改 mongodb 服务配置
$ vim /etc/mongodb.conf

在文件末尾添加以下配置

auth = true
  1. 重启 mongodb 服务

mongodb service 没有提供 stop 命令, 手动停掉进程

$ ps aux | grep mongodb | awk '{print $2}' | head -n 1 | xargs kill
$ service mongodb start
  1. 使用上面创建的账号连接 mongodb
$ mongo -u cs -p 123456 --authenticationDatabase admin
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings: 
2022-04-26T16:55:01.932+0800 I CONTROL  [initandlisten] 
2022-04-26T16:55:01.932+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2022-04-26T16:55:01.932+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2022-04-26T16:55:01.932+0800 I CONTROL  [initandlisten] 
2022-04-26T16:55:01.933+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 10240 processes, 1048576 files. Number of processes should be at least 524288 : 0.5 times number of files.
2022-04-26T16:55:01.933+0800 I CONTROL  [initandlisten] 
>