MySQL
内容
基础篇
语法
函数
约束
多表查询
事务
进阶篇
存储引擎
索引
SQL 优化
视图/存储过程/触发器
锁
InnoDB 核心
MySQL 管理
运维篇
日志
主从复制
分库分表
读写分离
安装
MacOs
1brew install mysql
Ubuntu
123sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev
设置
1mysql_secure_installation
启动
MacOs 1sudo mysql.server start
Ubuntu
1sudo service mysql start
登录
12// mysql [-h 127.0.0.1] [-P 3306] -u root -pmysql -u root -p
关闭
MacOs 1sudo mysql.server stop
Ubuntu
1sudo service mysql stop
数据库
名称
全称
简称
...
博客部署
Hexo 可以部署在 github page,也可以部署在腾讯云(推荐)
腾讯云 cloudbase 部署
在博客根目录安装
npm i -g @cloudbase/cli hexo-cli,npm install hexo-deployer-tcb --save
在根目录打开终端,输入 tcb 进行简单配置
在 hexo 的 config 文件的 deploy 中配置:
12345deploy: type: tcb secretId: secretKey: envId:
之后每次 hexo d 就会自动上传至 cloudbase
MathJax 渲染
MathJax 渲染
若第一次安装渲染只需:
123npm un hexo-renderer-marked --savenpm install hexo-renderer-pandoc --savenpm install hexo-filter-mathjax --save
也就是删除 hexo 本身的渲染,改为 pandoc 渲染,另外还需去 Pandoc - Installing pandoc
网站 安装 pandoc 软件
使用 hexo-filter-mathjax 是将 latex 公式转化为
SVG,能避免一些主题样式 bug
在 hexo 根目录下添加以下配置,避免图片标题出现两次的情况:
123pandoc: extensions: - '-implicit_figures
更改主题配置文件:
1234mathjax: enable: true # true 表示每一頁都加載mathjax per_page: false
若已经安装过别的渲染,卸载其他渲染器,安装pandoc即可。
Hexo 搭建与使用
安装
安装 nodejs,使用 npm 命令安装 hexo
1234567// 安装 hexonpm install hexo-cli -g// 新建 hexo 博客根目录mkdir blogcd blog// 初始化hexo init
配合 Obsidian(选择)
Obsidian 仓库
将 hexo 博客根目录下的 source 文件夹设为 Obsidian
仓库
自动生成目录
hexo 博客文章都是存放在 source 的 _posts
文件夹下,为了满足按照 categories
作为文件夹来存放博客,可以安装 hexo-auto-category 插件
1npm install hexo-auto-category --save
然后在 hexo 根目录下的 _config.yml 中配置
123456# Generate categories from directory-tree# Dependencies: https://github.com/xu-song/hexo-auto-category# depth: the max_depth of directory- ...
C++ const
const
const 变量名开头大写,define 变量名全大写
12345678910111213int n = 10;int m = 100;const int *pt = &n; // a pointer to const int*pt = 20; // invalidpt = &m; // validint *const pt = &n; // a const pointer to int*pt = 20; // validpt = &m; // invalidint trouble = 75;const int *const stick = &trouble; // a const pointer to const int
C++ 禁止将 const 的地址赋给非 const 指针
如果条件允许,应将指针形参声明为指向 const 的指针
将指针参数声明为指向常量数据的指针有 两条理由:
这样可以避免由于无意间修改数据而导致的编程错误;
使用 const 使得函数能够处理 const 和非 const 实参,否则将只能接受非
con ...
C++ 指针和引用
指针
如果指针在定义的时候不初始化那可能指向任意的内存地址值,这样的指针被称为
野指针,指向一个未知的内存位置
12long *fellow;*fellow = 223323;
上面的代码中 fellow 没有初始化,所以这种错误可能存在
bug,所以在对指针应用解引用操作符前,需要分配一个确定的适当的地址
1234int *pt;pt = 0xB8000000; // type mismatchpt = (int *) 0xB8000000; // types now matchcout << pt << endl; // 输出 0xB8000000
C++
不能直接赋值地址,需要通过强制类型转换,将数字转换为适当的地址类型
空指针
与野指针对应的就是
空指针,表示不指向任何有效的内存地址
12345// 空指针int *p1 = nullptr; // C++ 一般用这个int *p2 = 0;// must #include cstdlib,NULL 在头文件中被定义为 0int *p3 = NULL; // C 语言空指针,is equivalent t ...
C++ 基础
sizeof
12int n = 75; // int n{75}; int n(75); int n = {75};cout << sizeof(int) << endl;
sizeof() 查看类型或变量的长度,单位为
字节
integral types
short 至少 16位
int 至少与 short 一样长
long 至少 32 位且至少与 int 一样长
long long 至少 64 位,且至少与 long 一样长
头文件 climits 中定义了符号常量来表示类型的限制
12345678910int n = 75;cout << dec; // dec 控制符,输出十进制cout << n << endl;cout << oct; // oct 控制符,输出八进制cout << n << endl;cout << hex; // hex 控制符,输出十六进制cout << n << endl;
如果知道变量不可能为负数,尽量使用无符号 ...