当前位置:首页 » 操作系统 » linuxpg

linuxpg

发布时间: 2022-08-20 00:06:37

linux中 pg 命令是什么意思 为什么我在shell中该命令是无效代码

分页显示文件内容
命令:pg (page)
格式:pg [option] filename
功能:分页显示指定文件的内容。在显示一页文件时,最后一行将显示等待用
户输入指令。可输入的指令有如下选项。
选项:h 显示pg命令中可使用的帮助(help)命令。
q 退出pg命令。
[return] 显示下一页正文。
1 显示正文的下一行
[Space] 显示下一页
d/[Ctrl-D] 将屏幕滚动半屏。
n 显示pg命令行中说明的下一个文件。
p 显示pg命令行中说明的前一个文件。
% 显示正文当前页的前面一页。
/pattern 在文件中向前搜索指定的字符模式。
?pattern 在文件中向后搜索指定的字符模式。
注释:当pg命令显示到文件的末尾时,显示一个文件结束信息EOF(end of file)。
例如:% pg filename

Ⅱ linux 怎么查询postgres数据库

postgres下一些查询有时候是不同于其他数据库的。
查询版本:psql --version
进入数据库后,使用下面的方法进行查询。
(1)显示SQL语句执行时间
\timing on 退出数据库失效
(2)显示postgres中所有的表总数(包含数据库自带的)
select count(*) from pg_tables;
安装好数据库系统自带为58个。
(3)显示用户生成的数据库列表
\d
(4)显示某个表列属性
\d tablename
(5)删除表中所有数据
delete from tablename --写入日志
Truncate Table tablename --不写入日志
TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。
语法
TRUNCATE TABLE name
参数
name
是要截断的表的名称或要删除其全部行的表的名称。
注释
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。
如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
示例
下例删除 authors 表中的所有数据。
TRUNCATE TABLE authors
(6)显示当前用户
\c
(7)显示当前数据库所有用户
\
(8)创建用户
create user xxx with password 'xxxxxx';
(9)更改用户密码
alter user xxx with password 'yyyy';
(10)更改用户连接
\c database username
(11)更改表名
更改表名称
alter table smallint rename to integer;

(12)更改列名
更改表列名
alter table integer rename column id to id1;

(13)显示日期
show datestyle;
(14)设置日期格式
set datestyle=MDY;
(15)打印详细出错信息
postgres=# \set VERBOSITY verbose
postgres=#
postgres=#
postgres=# create table (id );
ERROR: syntax error at or near "(" at character 14
STATEMENT: create table (id );
ERROR: 42601: syntax error at or near "("
LINE 1: create table (id );
^
LOCATION: scanner_yyerror, scan.l:1044

(16)更改列属性
postgres=# alter table a1 alter column id2 set DATA TYPE int;
(17)查看帮助信息
\h alter table
(18)列显示
\x
(19)创建函数
CREATE OR REPLACE FUNCTION f_value_single()
returns void AS $_$
DECLARE
BEGIN
for i in 1..2000000 loop
insert into abc values(1,'a','a');
end loop;
return;
END;
$_$ language plpgsql;

将表名作为入参
create or replace function count(varchar)
returns bigint
as

selectcount(∗)fromquoteident($1);

language 'sql';

(20)关闭数据库3种模式
SIGTERM
不再允许新的连接,但是允许所有活跃的会话正常完成他们的工作,只有在所有会话都结束任务后才关闭。这是智能关闭。

SIGINT
不再允许新的连接,向所有活跃服务器发送 SIGTERM(让它们立刻退出),然后等待所有子进程退出并关闭数据库。这是快速关闭。

SIGQUIT
令 postgres 向所有子进程发送 SIGQUIT 并且立即退出(所有子进程也会立即退出),而不会妥善地关闭数据库系统。这是立即关闭。这样做会导致下次启动时的恢复(通过重放 WAL 日志)。我们推荐只在紧急的时候使用这个方法。

SIGKILL
此选项尽量不要使用,这样会阻止服务器清理共享内存和信号灯资源,那样的话你只能在启动服务器之前自己手工做这件事。另外,SIGKILL 直接把 postgres 杀掉,而不会等它把信号中继给它的子进程,因此我们还需要手工杀掉每个独立子进程。

Ⅲ linux怎么用命令登陆postgres

(1)用户实用程序:

createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同)

createuser 创建一个新的PostgreSQL的用户(和SQL语句:CREATE USER 相同)

dropdb 删除数据库

dropuser 删除用户

pg_mp 将PostgreSQL数据库导出到一个脚本文件

pg_mpall 将所有的PostgreSQL数据库导出到一个脚本文件

pg_restore 从一个由pg_mp或pg_mpall程序导出的脚本文件中恢复PostgreSQL数据库

psql 一个基于命令行的PostgreSQL交互式客户端程序

vacuumdb 清理和分析一个PostgreSQL数据库,它是客户端程序psql环境下SQL语句VACUUM的shell脚本封装,二者功能完全相同

(2)系统实用程序

initdb 创建一个用于存储数据库的PostgreSQL数据目录,并创建预定义的模板数据库template0和template1,生成共享目录表 catalog;此程序通常只在安装PostgreSQL时运行一次

initlocation 创建一个辅助的PostgreSQL数据库存储区域

ipcclean 从停止的PostgreSQL服务器中清除共享内在和孤立信号标志

pg_ctl 启动、停止、重启PostgreSQL服务(比如:pg_ctl start 启动PostgreSQL服务,它和service postgresql start相同)

pg_controldata 显示PostgreSQL服务的内部控制信息

postgres PostgreSQL单用户模式的数据库服务

postmaster PostgreSQL多用户模式的数据库服务

4.这里面最重要的是psql这个客户端程序最为重要。启用客户端程序psql的方法是:

切换到PostgreSQL预定义的数据库超级用户postgres,启用客户端程序psql,并连接到自己想要的数据库,比如说:

psql template1

出现以下界面,说明已经进入到想要的数据库,可以进行想要的操作了。

template1=#

5.在数据库中的一些命令:

template1=# \l 查看系统中现存的数据库

template1=# \q 退出客户端程序psql

template1=# \c 从一个数据库中转到另一个数据库中,如template1=# \c sales 从template1转到sales

template1=# \dt 查看表

template1=# \d 查看表结构

template1=# \di 查看索引
[基本数据库操作]========================
*创建数据库:
create database [数据库名];

*查看数据库列表:
\d

*删除数据库:
drop database [数据库名];

创建表:
create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);

*查看表名列表:
\d

*查看某个表的状况:
\d [表名]

*重命名一个表:
alter table [表名A] rename to [表名B];

*删除一个表:
drop table [表名];
========================================

[表内基本操作]==========================
*在已有的表里添加字段:
alter table [表名] add column [字段名] [类型];

*删除表中的字段:
alter table [表名] drop column [字段名];

*重命名一个字段:
alter table [表名] rename column [字段名A] to [字段名B];

*给一个字段设置缺省值:
alter table [表名] alter column [字段名] set default [新的默认值];

*去除缺省值:
alter table [表名] alter column [字段名] drop default;

在表中插入数据:
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);

修改表中的某行某列的数据:
update [表名] set [目标字段名]=[目标值] where [该行特征];

删除表中某行数据:
delete from [表名] where [该行特征];
delete from [表名];--删空整个表

6.要注意随时对数据库进行清理、收回磁盘空间并更新统计信息,使用下面的命令就搞定!

vaccumdb -d sales -z

-a 对所有的数据库操作

-z 保证不断地删除失效的行,节约磁盘空间,将统计信息更新为最近的状态

7.PostgreSQL用户认证

PostgreSQL数据目录中的pg_hba.conf的作用就是用户认证,可以在/var/lib/pgsql/data中找到。

有以下几个例子可以看看:

(1)允许在本机上的任何身份连接任何数据库

TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

local all all trust(无条件进行连接)

(2)允许IP地址为192.168.1.x的任何主机与数据库sales连接

TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

host sales all 192.168.1.0 255.255.255.0 ident sameuser(表明任何操作系统用户都能够以同名数据库用户进行连接)

8.看了那么多,来一个完整的创建PostgreSQL数据库用户的示例吧

(1)进入PostgreSQL高级用户

(2)启用客户端程序,并进入template1数据库

psql template1

(3)创建用户

template1=# CREATE USER hellen WITH ENCRYPED PASSWORD'zhenzhen'

(4)因为设置了密码,所以要编辑pg_hba.conf,使用户和配置文件同步。

在原有记录上面添加md5

local all hellen md5

(4)使用新用户登录数据库

template1=# \q

psql -U hellen -d template1

PS:在一个数据库中如果要切换用户,要使用如下命令:

template1=# \!psql -U tk -d template1

9.设定用户特定的权限

还是要用例子来说明:

创建一个用户组:

sales=# CREATE GROUP sale;

添加几个用户进入该组

sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;

授予用户级sale针对表employee和procts的SELECT权限

sales=# GRANT SELECT ON employee,procts TO GROUP sale;

在sale中将用户user2删除

sales=# ALTER GROP sale DROP USER sale2;

10.备份数据库

可以使用pg_mp和pg_mpall来完成。比如备份sales数据库:

pg_mp sales>/home/tk/pgsql/backup/1.bak

Ⅳ linux下修改pgsql的data路径

1. 修改配置文件/etc/postgresql/9.3/main/postgresql.conf
data_directory = '/home/pgdata'
2. 修改data_directory的所有者
chown -R postgres:postgres /home/pgdata
3. 这时候启动会报error
* The PostgreSQL server failed to start. Please check the log output:
2014-11-25 09:55:02 CST FATAL: data directory "/home/pgdata" has group or world access
2014-11-25 09:55:02 CST DETAIL: Permissions should be u=rwx (0700).
根据提示修改数据目录权限
chmod 700 /home/pgdata
4. 启动依然会报错
* The PostgreSQL server failed to start. Please check the log output:
2014-11-25 09:56:17 CST FATAL: "/home/pgdata" is not a valid data directory
2014-11-25 09:56:17 CST DETAIL: File "/home/pgdata/PG_VERSION" is missing.
把默认数据目录的东西拷贝过来
cp -r /var/lib/postgresql/9.3/main/* /home/pgdata
5. 启动 service postgresql start

Ⅳ Linux怎么设置PostgreSQL远程访问

PostgreSQL数据库服务器,就需要进行相应的配置。 配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf。 pg_hba.conf:配置对数据库的访问权限, postgresql.conf:配置PostgreSQL数据库服务器的相应的参数。 步骤: 1.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容): # TYPE DATABASE USER CIDR-ADDRESS METHOD # “local” is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 192.168.1.0/24 md5 # IPv6 local connections: host all all ::1/128 trust 其中,第7条是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。 其中,数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问! 2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。 定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。 将行开头都#去掉,将行内容修改为listen_addresses=’*‘来允许数据库服务器监听来自任何主机的连接请求 上面就是Linux设置PostgreSQL远程访问的方法介绍了,如果你不设置,则PostgreSQL默认只能范围本地,功能比较局限

热点内容
excel的快速访问工具栏 发布:2025-05-17 09:14:58 浏览:1
android360源码 发布:2025-05-17 09:11:47 浏览:76
步科编程软件 发布:2025-05-17 09:09:18 浏览:824
ps4密码设置有什么要求 发布:2025-05-17 08:49:16 浏览:70
文本编译工具 发布:2025-05-17 08:47:47 浏览:3
phpc语言 发布:2025-05-17 08:45:30 浏览:806
苹果6s怎么设置4位密码 发布:2025-05-17 08:41:14 浏览:180
如何玩cf端游越南服务器 发布:2025-05-17 08:38:54 浏览:184
噪声的危害和控制设计脚本 发布:2025-05-17 08:22:29 浏览:474
esr算法 发布:2025-05-17 08:16:09 浏览:195