Docker拉取镜像失败的解决方法
Docker 拉取镜像失败的解决方法报错信息1download failed after attempts=6: dial tcp 104.18.125.25:443: i/o timeout
Step 1:写入镜像配置Step 1.1:创建目录1sudo mkdir -p /etc/docker
Step 1.2:写入镜像配置12345678910sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ]}EOF
Step 2:重启 Docke ...
MySQL 设置 create_time/update_time 自动更新
MySQL在 MySQL 中,可以使用 CURRENT_TIMESTAMP 函数来获取当前时间戳,其特性包括:
插入时自动更新:通过在表定义中设置默认值为 CURRENT_TIMESTAMP,可以在插入新记录时自动填充当前时间戳。
1234CREATE TABLE example_table ( id INT AUTO_INCREMENT PRIMARY KEY, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
更新时自动更新:使用 ON UPDATE CURRENT_TIMESTAMP 在字段定义中,可以在更新记录时更新时间戳。
1234CREATE TABLE example_table ( id INT AUTO_INCREMENT PRIMARY KEY, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
MyBatis 占位符与字符串替换 详解
MyBatis ‘#’ 和 ‘$’ 详解
MyBatis 是一个开源的持久层框架,用于简化数据库操作,它提供了多种方式来执行 SQL 查询,支持动态 SQL、映射器接口和注解等特性。在 MyBatis 中,# 和 $ 符号在 SQL 查询中有不同的作用和用法。
# 和 $ 的区别
# 符号
作用:# 符号表示预编译处理(PreparedStatement),会将参数按照 JDBC 类型安全地进行替换,即使用占位符 ? 来表示参数值。
安全性:使用 # 可以防止 SQL 注入攻击,因为参数值会被自动转义,使得输入的参数无法改变 SQL 的语义。
适用情况:推荐用于传递参数值,如 WHERE 子句、INSERT 或 UPDATE 的列值等。
示例:
1SELECT * FROM users WHERE id = #{userId}
这里 #{userId} 将会被替换为安全的预编译参数。
$ 符号
作用:$ 符号直接将参数值拼接进 SQL 语句中,可以理解为字符串替换,不会进行预编译处理。
灵活性:由于直接替换参数值,可以用于动 ...
Docker + Umami 使用教程
Docker + Umami 使用教程前置条件
安装 MySQL,MySQL 安装教程
安装 Docker,Docker 安装教程
Step 1:在服务器上,创建一个docker-compose.yml1vim docker-compose.yml
Step 2:在该文件中添加如下内容123456789101112version: '3'services: umami: image: ghcr.io/mikecao/umami:mysql-latest network_mode: "host" environment: DATABASE_URL: mysql://username:password@localhost:3306/databasename DATABASE_TYPE: mysql HASH_SALT: replace-me-with-a-random-string restart: always container_name: umami
username ...
Ubuntu安装Docker
Ubuntu服务器安装DockerStep 1:更新系统软件包1sudo apt update
Step 2:安装依赖包【用于通过HTTPS来获取仓库】1sudo apt install apt-transport-https ca-certificates curl software-properties-common
Step 3:添加Docker官方GPG密钥12sudo -icurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-ce.gpg
Step 4:验证1sudo apt-key fingerprint 0EBFCD88
0EBFCD88 是公钥的指纹。执行这个命令后,系统会显示与该指纹相关的公钥信息。
Step 5:添加Docker阿里稳定版软件源1sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun. ...
hexo解决图片路径不正确问题
hexo解决图片上传到服务器后路径不正确的问题Table of Contents[toc]
Step 1 安装 hexo-renderer-marked 插件hexo-renderer-marked 是一个为 Hexo 博客框架设计的插件,它使用 Marked 解析 Markdown 文件。Hexo 是一个快速、简单且功能强大的静态博客框架,而 hexo-renderer-marked 插件允许你使用 Marked 来渲染 Markdown 文件,从而生成静态网页内容。
主要功能和用途
Markdown 渲染: hexo-renderer-marked 使用 Marked 库将 Markdown 文件转换为 HTML。Markdown 是一种轻量级的标记语言,常用于编写博客文章、文档等。
支持扩展语法: Marked 支持一些扩展的 Markdown 语法,使你可以使用更高级的特性,例如表格、代码块高亮等。
高性能: Marked 是一个高性能的 Markdown 解析器,解析速度快,生成的 HTML 代码干净且高效。
自定义选项: hexo-renderer-marked 允许你在 ...
Java8新特性
Java8新特性Interface新特性
default修饰的方法,是普通实例方法,可以用this调用,可以被子类继承、重写。
如果两个接口都定义了某个default同名方法,某个类同时实现了这两个接口,那么,这个同名方法必须重写,否则编译报错
static修饰的方法,使用上和一般类静态方法一样。但它不能被子类继承,只能用Interface调用。
函数式编程(Functional Programming, FP)是一种编程范式,它将计算视为数学函数的求值,并强调函数的应用。与命令式编程不同,函数式编程更关注表达式的计算和函数的组合,而不是变量的状态和赋值操作。就像管道符一样,一个函数的输出是下一个函数的输入
Lambda表达式和Stream流都是函数式编程的应用
Java LambdaLambda表达式是Java 8引入的一个重要特性,使得我们可以用更加简洁和函数式的方式编写代码。
Lambda表达式可以用于实现函数式接口(即只有一个抽象方法的接口),并在集合操作、并行处理等场景中得到广泛应用。
基本语法Lambda表达式的基本语法如下:
12(parameters) ...
hexo使用指南
hexo使用指南本地创建一篇新博客1hexo new '博客名'
指定该博客的tags、categories1234567891011tags: xxxcategories: xxx或者tags: - 博客搭建 - xxx1 - xxx2categories: - yyy1 - yyy2注意:使用'-'时需要留一个空格,如“- xxxtag”
添加主页上该博客的描述12description: | hexo基本操作:创建新博客、创建新页面、远程部署、图片上传等
本地创建一个新的页面1hexo new page '页面名'
将本地内容推送到服务器123hexo cleanhexo ghexo d
