- 安装
- 控制
- 连接及后续基本操作
# ubuntu == 18.4 sudo apt-get install postgresql postgresql-contrib #succeed install and server activate ps -aux |grep "postgre"控制
which psql #psql shell 都在miniconda下面 which pg_ctl #这个也在miniconda下面 pg_ctl --help
主要使用pg_ctl控制我的数据库启动关闭:pg_ctl
pg_ctl 用于启动、停止、重启 PostgreSQL 后端服务器(postgres),或者显示一个运行着的服务器的状态。尽管可以手动启动服务器,但是 pg_ctl 封装了重新定向日志输出,与终端和进程组合理分离,以及另外提供了一个选项用于有控制的关闭。
在 start 模式里会启动一个新的服务器。服务器是在后台启动的,标准输入被附着到了 /dev/null 上。如果使用了 -l ,那么标准输出和标准错误将被定向到一个日志文件,要么就是重定向到 pg_ctl 的标准输出(而不是标准错误)。如果没有选定日志文件,pg_ctl 的标准输出应该重定向到一个文件或者用管道输出到类似 rotatelogs这样的日志滚动程序,否则,postgres 将把它的输出写到控制终端(在后台)并且将不会脱离 shell 的进程组。
在 stop 模式下,那个正在特定数据目录运行的服务器将被关闭。你可以用 -m 选项选择三种不同的关闭模式:"Smart"模式等待所有客户端中断连接,这是缺省。"Fast"模式并不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开。"Immediate"模式将在没有干净关闭的情况下强行退出。这么做将导致在重新启动的时候的恢复。
restart 实际上是先执行一个停止,然后紧跟一个启动。它允许变换 postgres 的命令行选项。
reload 模式简单地给 postgres 发送一个 SIGHUP 信号,导致它重新读取配置文件(postgresql.conf,pg_hba.conf 等),这样就允许修改配置文件选项而不用重启系统即可生效。
status 模式监查一个服务器是否在指定的数据目录运行,如果是,那么显示其 PID 和调用它的命令行选项。
kill 模式允许你给一个指定的进程发送信号。这个功能对 Microsoft Windows 特别有用,因为它没有 kill 命令。使用 --help 查看支持的信号名字列表。
-D datadir
声明该数据库的文件系统位置。如果忽略则使用 PGDATA 环境变量。
-l filename
把服务器日志输出附加在 filename 文件上。如果该文件不存在则创建它。umask 设置为 077 ,因此缺省时是不允许从其它用户向日志文件访问的。
-m mode
声明关闭模式。mode 可以是 smart, fast, immediate 之一,或者是这三个的首字母之一。
-o options
声明要直接传递给 postgres 的选项。
参数通常都用单或者双引号包围以保证它们作为一个整体传递。
-p path
声明 postgres 可执行文件的位置。缺省位于 pg_ctl 自身所在目录,如果没找到则使用硬编码的安装目录。除非你想干点什么特别的事情,并且想得到类似没有找到 postgres 这样的错误,否则必须使用这个选项。
-s
只打印错误,而不打印提示性信息。
-w
等待启动或者关闭的完成(60 秒超时),这个参数是关闭时的缺省值。成功的关闭是以删除 PID 文件为标志的。对于启动而言,一次成功的 psql -l 就标志着成功。pg_ctl 将企图使用对 psql 合适的端口,如果存在 PGPORT环境变量,那么将用它。否则,它将查找在 postgresql.conf 文件里是否设置了一个端口。如果都没有,它将使用 PostgreSQL 编译时的缺省端口(缺省 5432)。在等待的时候,pg_ctl 将根据启动或者关闭的成功状况返回一个准确的退出代码。
连接及后续基本操作-W
不等待启动或者停止的完成。这是启动和重启的缺省。
psql -h localhost -U djs template1 #-h指定本机 -U 指定用户 连接数据库template1 #可以选择创建其他用户并指定登录权限和密码 #创建数据库 help CREATE DATAbase #删除数据库 DROP dbname #选择数据库或者切换数据库 c dbname #此时我已经连接了template1数据库 # 查看数据 dt #table list d #table list d template1 #template1 数据库中有一个template1表格,这是我在django model类中创建的。最好不要数据库名字唯一,所有表的名字必须唯一,表和数据库的名字最好不一样 #创建表格 help CREATE TABLE #删除表格 DROP TABLE table_name; #创建模式schema #非常先进的思想,但不建议新手使用 help CREATE SCHEMA #删除模式 DROP SCHEMA schema_name; #选择schema创建表格 create table schema_name.table_name #选择schema中的表格并删除 DROP SCHEMA schema_name CASCADE; #TSV/CSV文件导入数据库 https://blog.csdn.net/neweastsun/article/details/119141482



