debian安装postgresql

  1. 新建  /etc/apt/sources.list.d/pgdg.list 文件,在里边添加
# debian 9
deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main

##如果是debian8,改为
 
deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main 

## 如果是debian7 
 
deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main 

2. 执行命令

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql

3. 使用

pgsql默认会创建一个名为postgres的用户,无密码,但必须用sudo切换,否则报错。

sudo su postgres ## 切换到postgres 用户 。此用户无密码

psql ## 执行此命令,进入postgresql命令行

CREATE USER dbuser WITH PASSWORD ‘password’; ## 创建用户dbuser

CREATE DATABASE exampledb OWNER dbuser; ## 创建数据库

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser; ## 给dbuser赋予数据库的权限。

\q ## 退出

\l ## 列出数据库

\d ## 列出表

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432 ## 登录数据库

windows powershell支持git命令自动补全

  1. 执行命令` $PSVersionTable.PSVersion ` ,确定powershell版本2.0或更高

2. 命令 ` Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm `

3. 确认是否安装git , 未安装请先安装,执行`git –version` 确认

4. 执行命令 ` PowerShellGet\Install-Module posh-git -Scope CurrentUser ` 执行过程中会有询问,问就Y。

5. 进入一个有git init 的工作目录 ,执行命令 ` Import-Module posh-git ` ,会发现 cmd 提示发生变化,表示成功

6. enjoy

mysql 实现首字母A-Z排序

两种方案:

  1. 语句
select * from user ORDER BY CONVERT(name USING GBK) ASC;

// 这样可以实现中文排序,但是有个问题,英文字母没有排序,而且在中文上边

2. 自定义函数

“`mysql

DELIMITER $$    
CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
DETERMINISTIC
BEGIN
DECLARE V_RETURN VARCHAR(255);
DECLARE V_BOOL INT DEFAULT 0;
DECLARE FIRST_VARCHAR VARCHAR(1);
SET FIRST_VARCHAR = left(CONVERT(P_NAME USING gbk),1); SELECT FIRST_VARCHAR REGEXP '[a-zA-Z]' INTO V_BOOL;
IF V_BOOL = 1 THEN
SET V_RETURN = FIRST_VARCHAR;
ELSE
SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7, 0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6, 0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1), 'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
END IF;
RETURN V_RETURN;
END$$
DELIMITER;



select * from app_user ORDER BY fristPinyin(name) ASC ;
// 即可实现英文也按中文排序

php编写swagger注释信息

  1. 需要写title,不用每个文件都写,只要有一个就行。
/**
 * @OA\Info(
 *     title="My Test API",
 *     version="1.0.0"
 * )
 */

2. 写注释信息

/**
	 * @OA\Post(
	 *     path="路径,比如:/test/push",
	 *     tags={"标签"},
	 *     summary="描述信息",
	 *     @OA\RequestBody(
	 *         @OA\MediaType(
	 *             mediaType="application/json  请求格式",
	 *             @OA\Schema(
         *                 required={"id"},
	 *                 @OA\Property(
	 *                     property="id",
	 *                     type="int",
	 *                     description="id 参数"
	 *                 ),
	 *                 @OA\Property(
	 *                     property="sess",
	 *                     type="string",
	 *                     description="session 参数"
	 *                 ),
	 *                 example={"id": 1, "sess": "wdff"}
	 *             )
	 *         )
	 *     ),
	 *     @OA\Response(
	 *         response=200,
	 *         description="successful",
	 *         @OA\JsonContent(
	 *          type="array|object|string",
	 *          @OA\Items(
	 *          	@OA\Property(property="seminarName", type="string", description="主会名"),
	 *          	@OA\Property(property="seminarId", type="int", description="主会id"),
	 *          	@OA\Property(
	 *              	property="items",
	 *              	type="object",
	 *                  	@OA\Property(property="subSeminarId", type="int", description="分会id"),
	 *                  	@OA\Property(property="subName", type="string", description="分会名")
	 *              	
	 *          	)
	 * 			)
	 *         )
	 *
	 *     )
	 * )
	 */

3. 生成swagger文件

# 首选需要composer require
composer require zircote/swagger-php
# 命令
vendor/bin/openapi -o openapi.json test/
# -o 输出后的文件
# test/  目录名,swagger会从此目录scan

OpenVPN多个vpn连接

首先win+R键,输入
C:\Program Files\TAP-Windows\bin

然后一定要用管理员打开 addtap.bat 这个文件,右键,管理员模式打开,会弹出命令框,注意,查看时success 还是failed,一定要是success。这样就创建一个tap

创建成功后, 可以进入opevpn 所在目录,执行 openvpn.exe –show-adapters ,查看当前的TAP。这一步不是必须的。

接下来,一定要重启openvpn,或者退出重新进入。就可以同时连接两个了,如果要三个,再按上述步骤添加就行。

appsettings.json Copy to Output Directory

在vscode中遇到问题,读取不到配置文件,发现appsettings.json并未复制到编译的目录中,所以,在project.csproj中添加一下代码

<ItemGroup>
    <Content Include="appsettings.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
  </ItemGroup>

重新编译后可以复制此文件到目标目录。

WSL-Debian/Ubuntu系统tail -f 命令无法查看文件更新

tail -f命令可以查看文件更新的记录,但是在wsl中,可能无法正常工作。

经查找发现,Linux是通过inotify来获取文件变动的,但是不知道是bug还是什么原因,感知不到文件变动,造成此问题。

解决方案:使用tail -f ---disable-inotify 2019-02-21.log这个命令开查看日志,就可以了!

补充:在wsl中感应Windows系统中的文件变化,需要加上 —disable-inotify 此参数