下载安装包
unzip 然后 tar -xvf 安装包
找到自启动程序sh脚本,打开脚本,里面有个password
然后bash 脚本名 -w 加上 password(或者这里可以重新重置口令) 执行即可
sh Autoinstall.sh -c -w "口令" -repl "口令"
Autoinstall.sh下载完以后,所有安装包的内容都会被删除
操作都需要通过 systemctl status postgresql-11.service来操作,systemctl的stop/start/status即可
使用
记得下载java ,否则不会报错,但是启动失败
yum install -y java-1.8.0-openjdk
java -version
- 下载DBI,需要从服务端上传jar包,然后去登陆界面下载包。
包名为hkws.jar,然后nohup java -jar hkws.jar >/tmp/nohup.out 2>&1 &
执行命令 ps aux|grep jar 看到下图即可

su - postgres 然后psql即可
查看当前数据库名/表名/用户名
当前数据库名 SELECT current_database();
所有数据库名 SELECT datname FROM pg_database;
查看当前用户 SELECT current_user;
查看所有用户 SELECT usename FROM pg_user;
当前用户名 \du
查看用户名和密码设置 SELECT rolname, rolpassword FROM pg_authid;
重置用户密码 ALTER ROLE postgres PASSWORD 'new_password';
查看当前数据库有多少表
SELECT *(如想看数量就是select count(*))
FROM information_schema.tables
WHERE table_schema = 'public';
创建表
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
插入数据
INSERT INTO users (username, email)
VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com'),
('Eve', 'eve@example.com');
查看数据 SELECT * FROM users WHERE username = 'Alice';
删除数据 DELETE FROM users WHERE name = 'Alice';
删除表里数据而不删除整个表格 DELETE FROM table_name;
查看主键
SELECT
tc.table_schema,
tc.table_name,
kc.column_name,
tc.constraint_name,
tc.constraint_type
FROM
information_schema.table_constraints tc
JOIN
information_schema.key_column_usage kc
ON
tc.constraint_name = kc.constraint_name
AND tc.table_schema = kc.table_schema
WHERE
tc.constraint_type = 'PRIMARY KEY';

修改操作
添加列ALTER TABLE users ADD email VARCHAR(50);
删除列ALTER TABLE users DROP COLUMN email;
修改列名称ALTER TABLE users RENAME COLUMN email TO useremail;
修改数据UPDATE users SET number = 25 WHERE 条件;
测试数据库完整性Q & A
- 如何添加条件让select的内容按照字段名筛选?
但是很明显,不可以按照列进行筛选,因为条件里无法筛选column为某个字段,因为select * 是固定的。正常情况下,如果想按照列进行数据保护,就不需要加条件,select *就可以顾及到所有数据的列(select limit的数据值,也就是受到保护的数据条数,大于总数据量即可)。目前无法做到单独针对某一列进行数据的完整性保护。可以修改的条件只有表名和条件
SELECT column1, column2, column3
FROM table_name
ORDER BY column_name;
- 客户端隔段时间推送给服务器,还是服务器隔段时间推送给客户端
下载wireshark,遇到找不到接口问题:
以管理员身份运行Wireshark和命令提示符(CMD)
安装或更新WinPcap/npcap
重启NPF服务:在管理员身份运行的CMD中,输入net start npf命令重启NPF服务。
检查Wireshark和npcap的安装
然后输入过滤器 ip.addr == 10.19.200.184 and tcp

可以看到184向我们发送数据,所以是客户端推给服务器
记得关闭防火墙,然后进行数据完整性测试,如果执行异常,就把IP改成127.0.0.1,即使pqsql不在本地,也没关系,因为他这个主机的视角是184为主视角。
- 文件级完整性保护/数据行级完整性保护
只要筛选出来的数据改变,数据行级别的完整性保护就会被破坏,但如果是文件级完整性保护,就不会报警。
- 其他测试用例
后面新版本的DBI 是不会让加条件的,真正生产不会只指定几条数据做完整性的,DBI3.0后配置只需要指定表和字段 就可以全表进行完整性保护
DBI3.0还支持日志模式,就是append的数据不会报警,其他中间插入数据和修改,删除数据才会报警
191

被折叠的 条评论
为什么被折叠?



