Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用。这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安全性。

1. 修改配置文件

Redis的配置文件默认在/etc/redis.conf,找到如下行:

1
#requirepass foobared

去掉前面的注释,并修改为所需要的密码:

1
requirepass myPassword (其中myPassword就是要设置的密码)

2. 重启Redis

如果Redis已经配置为service服务,可以通过以下方式重启:

1
service redis restart

如果Redis没有配置为service服务,可以通过以下方式重启:

1
2
/usr/local/bin/redis-cli shutdown
/usr/local/bin/redis-server /etc/redis.conf

3. 登录验证

设置Redis认证密码后,客户端登录时需要使用-a参数输入认证密码,不添加该参数虽然也可以登录成功,但是没有任何操作权限。如下:

1
2
3
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

使用密码认证登录,并验证操作权限:

1
2
3
4
$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "myPassword"

看到类似上面的输出,说明Reids密码认证配置成功。

除了按上面的方式在登录时,使用-a参数输入登录密码外。也可以不指定,在连接后进行验证:

1
2
3
4
5
6
7
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth myPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "myPassword"
127.0.0.1:6379>

4. 在命令行客户端配置密码(redis重启前有效)

前面介绍了通过redis.conf配置密码,这种配置方式需要重新启动Redis。也可以通命令行客户端配置密码,这种配置方式不用重新启动Redis。配置方式如下:

1
2
3
4
5
127.0.0.1:6379> config set requirepass newPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "newPassword"

注意使用命令行客户端配置密码,重启Redis后仍然会使用redis.conf配置文件中的密码。

5. 在Redis集群中使用认证密码

如果Redis服务器,使用了集群。除了在master中配置密码外,也需要在slave中进行相应配置。在slave的配置文件中找到如下行,去掉注释并修改与master相同的密码即可:

1
# masterauth master-password

本文转自:https://www.cnblogs.com/lsgxeva/p/8052523.html

  • 安装mysql
1
sudo yum install mysql-community-server
  • 启动
1
2
3
systemctl start mysqld.service
//or
systemctl start mysqld
  • 查看mysql的状态
1
2
3
 service mysqld status
//or
systemctl status mysqld.service
  • 停止
1
systemctl stop mysqld.service
  • 重启
1
systemctl restart mysqld.service

修改密码及登录
初始密码
MySQL第一次启动后会创建超级管理员账号root@localhost,初始密码存储在日志文件中:

1
2
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2020-12-06T07:32:41.399112Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Nd<-p!Fxt6A8

修改默认密码

先进行登录

1
2
3
4
5
mysql -uroot -p
Enter password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密码太弱

解决方法如下:

  • 使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符;
  • 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以参考:设置密码策略;
  • 修改配置文件/etc/my.cnf,添加validate_password=OFF,保存并重启MySQL
  • 修改报错后重启报错解决可参考:https://blog.csdn.net/aiyowei1106/article/details/88703746

设置开机启动

1
2
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload

[root@localhost ~]# mysql -uroot -p
Enter password:
mysql> ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘password’;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

https://www.runoob.com/html/html5-websocket.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<script type="text/javascript">
function WebSocketTest()
{
if ("WebSocket" in window)
{
alert("您的浏览器支持 WebSocket!");

// 打开一个 web socket
var ws = new WebSocket("ws://localhost:9998/echo");

ws.onopen = function()
{
// Web Socket 已连接上,使用 send() 方法发送数据
ws.send("发送数据");
alert("数据发送中...");
};

ws.onmessage = function (evt)
{
var received_msg = evt.data;
alert("数据已接收...");
};

ws.onclose = function()
{
// 关闭 websocket
alert("连接已关闭...");
};
}

else
{
// 浏览器不支持 WebSocket
alert("您的浏览器不支持 WebSocket!");
}
}
</script>

由于express实例不是用new的方式创建,就没办法使用instanceof运算符来判断,但是每个app实例都包含了express.application中的所有方法,就只要判断其中方法是相同的就能知道它是一个app实例。

1
2
3
4
const express = require('express');
let app = express();
console.log(express.application.use === app.use);
//true

路由也是一样的。

1
2
3
4
const express = require('express');
let route = require('express').Router();
console.log(route.use===express.Router.use);
//true

nodejs提供的Math.random() 用于生成随机数字,但是并未提供生成字符串的函数,要自己写生成随机字符串逻辑比较麻烦。string-random库专门用于快速生成随机字符串,并且可以根据需求制定字符串长度以及包含的字符。下面进行相关用户的简单介绍。

1.简述

  1)random(length, options) 函数的第一个参数length为要生成的字符串长度,第二个参数是选项:

    - options 为true,生成包含字母、数字和特殊字符的字符串
    - options 为字符串,从options字符串中提供的字符生成随机结果
    - options 为对象
  2)options 对象:

    - options.letters

    - true (默认) 允许大小写字母
    - false 不允许大小写字母
    - string 从提供的字符生成随机结果

  3)options.numbers

    - true (默认) 允许数字
    - false 不允许数字
    - string 从提供的字符生成随机结果

  4)options.specials

    - true 允许特殊字符
    - false (默认) 不允许特殊字符
    - string 从提供的字符生成随机结果

2. 用法demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const stringRandom = require('string-random');
// 默认生成长度为8的字符串,包含大小写字母和数字的随机字符串
console.log(stringRandom()); // oSjAbc02

// 指定生成长度为16,包含大小写字母和数字的随机字符串
console.log(stringRandom(16)); // d9oq0A3vooaDod8X

// 指定生成长度为16,仅包含指定字符的字符串
console.log(stringRandom(16, '01')); // 1001001001100101

// 指定生成长度为16,包含大小写字母的随机字符串(不包含数字)
console.log(stringRandom(16, { numbers: false })); // AgfPTKheCgMvwNqX

// 指定生成长度为16,包含大小写字母的随机字符串(包含数字) 同console.log(stringRandom(16));
console.log(stringRandom(16, { numbers: true })); // r48ZGVa7FsioSbse

// 包含数字的随机字符串(不包含字母) 默认是 true
console.log(stringRandom(16, { letters: false })); // 0889014544916637

// 包含制定字母和数字的随机字符串
console.log(stringRandom(16, { letters: 'ABCDEFG' })); // 055B1627E43GA7D8

// 包含特殊字符 默认是false
console.log(stringRandom(16, { specials: true })); // ,o=8l{iay>AOegW[
console.log(stringRandom(16, true)); // SMm,EjETKMldIM/J
//包含指定特殊字符
console.log(stringRandom(16, { specials: "-" }));

@南非波波 github:https://github.com/swht

Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把ISO文件拷贝到U盘里面就可以启动了,无需其他操作。 你可以一次性拷贝很多个不同类型的ISO文件,在启动时Ventoy会显示一个菜单来选择(截图)。 无差异支持Legacy BIOS和UEFI模式。目前已经测试了各类超过260+ 个ISO文件(列表). 同时提出了”Ventoy Compatible”的概念,若被支持则理论上可以启动任何ISO文件.

不知道大家有没有遇到这种情况,将某个系统镜像写入U盘后,下次又换另外的镜像又得格式化U盘重新写入,非常的繁琐。有了Ventoy可以很方便的解决这个问题,可以将WinPE、Windows、Linux等多种系统集合到一起,启动的时候按需选择,加入新的系统也不需要再次格式化U盘

Ventoy 特点

  • 100% 开源 (许可证)
  • 使用简单 (使用说明)
  • 快速 (拷贝文件有多快就有多快)
  • 直接从ISO文件启动,无需解开
  • 无差异支持Legacy + UEFI 模式
  • UEFI 模式支持安全启动 (Secure Boot) (1.0.07版本开始) 说明
  • 支持持久化 (1.0.11版本开始) 说明
  • 支持直接启动WIM文件(Legacy + UEFI) (1.0.12+) 说明
  • 支持自动安装部署(1.0.09+) 说明
  • 支持超过4GB的ISO文件
  • 保留ISO原始的启动菜单风格(Legacy & UEFI)
  • 支持大部分常见操作系统, 已测试260+ 个ISO文件
  • 不仅仅是启动,而是完整的安装过程
  • ISO文件支持列表模式或目录树模式显示 说明
  • 提出 “Ventoy Compatible” 概念
  • 支持插件扩展
  • 启动过程中支持U盘设置写保护
  • 不影响U盘日常普通使用
  • 版本升级时数据不会丢失
  • 无需跟随操作系统升级而升级Ventoy

安装与使用

安装Ventoy后打开界面如下图,我们需要准备一个U盘(请提前备份数据),选择您的U盘点安装即可,注意:首次安装Ventoy会将U盘格式化,请务必备份数据。

然后将您的系统镜像(.iso)放到U盘的任意目录下,Ventoy会自动进行遍历查找您的系统镜像。BIOS中设置U盘为第一启动方式,即可看到多个启动方式。后面需要添加其它系统,直接将该系统镜像拷贝到U盘任意目录即可。

使用体验

之前博客介绍过另一款多系统U盘启动工具:WinSetupFromUSB多系统U盘引导启动工具,不过该工具每次添加一个新系统的时候都需要打开此软件写入镜像,使用起来没有Ventoy方便,也没有Ventoy简单。目前xiaoz已切换为Ventoy,既简单又方便。如果经常需要安装系统的同学,Ventoy是不可缺少的神器,推荐大家使用。

本文转自 https://www.xiaoz.me/archives/14984

0%