postgre常用命令

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建数据库用户,修改密码:
useradd postgres
passwd postgres
创建数据库文件存储文件夹:mkdir /usr/local/pgsql/data
改变先前目录的文件夹的权限:chown -R postgres:postgres /usr/local/pgsql
设置环境变量1:
echo 'export PATH=/usr/local/pgsql/bin:$PATH >> /etc/profile'
echo 'export LD_LIBRARY_PATH=/usr/local/pgsql/lib >> /etc/profile'
echo 'export PGDATA=/usr/local/pgsql/data >> /etc/profile'
source /etc/profile
设置环境变量2:
vi .bash_profile
把 PATH=$PATH:$HOME/bin 改成 PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin 保存退出
生效:source .bash_profile

切换用户:su - postgres
使用命令initdb生成数据库簇:initdb -D /usr/local/pgsql/data start
启动数据库:/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data >>logfile 2>&1
创建数据库:/usr/local/pgsql/bin/createdb test
使用psql工具登录数据库:psql
列举数据库:\l
切换数据库:\c test
列举表:\dt
查看表结构(表名为users):\d users
查看索引:\di
创建数据库: create database test;
删除数据库: drop database test;
创建表:
create table users
(
id integer PRIMARY KEY,
name character varying(128),
age integer NOT NULL,
sex smallint NOT NULL,
published datetime NOT NULL DEFAULT NOW(),
time int NOT NULL DEFAULT CURRENT_TIMESTAMP(),
money money DEFAULT 0
);
设置字段自增属性:
1、设置自增序列:create SEQUENCE users_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
2、将表主键ID的默认值设置成这个序列的NEXT值:alter table users alter column id set default nextval('users_id_seq');

设置表字段默认值:alter table users alter column money set default 0;
插入一条数据;insert into user (name,age,sex) values ('feifei',18,0);

解决pg_dump与pg服务版本不一致:ln -snf /usr/local/bin/pg_dump /usr/bin/pg_dump
备份命令:su - postgres -c "pg_dump -h localhost -U postgres Yunshang -f /raid5/apps/Yunshang.dump"
或:pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) >/data/dum.sql
导入整个数据库:psql -U postgres(用户名) test数据库名(缺省时同用户名) < /data/dum.sql
导出某个表:pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) -t table(表名) >/data/dum.sql

导出之后,需要复制到远程服务器时,考虑到文件较大,需要对dump的文件进行压缩,远程拷贝到备份服务器,再解压,再导入备份服务器:
压缩:tar -zxvf dump.tar /raid5/apps/dump
解压:tar -czvf dump.tar
远程拷贝文件:scp -P 22 local_file remote_username@remote_ip:remote_folder
远程拷贝目录:scp -P 22 -r local_folder remote_username@remote_ip:remote_folder


initdb命令详解:
在使用数据库前,是启动数据库,启动数据库前是initdb(初始化数据库);一起来看一下initdb做了什么吧


初始化数据库的操作为: ./initdb -D /usr/local/pgsql/data
initdb把用户指定的选项转换成对应的参数,通过外部程序调用的方式执行postgres程序。postgres程序在这种方式下将进入bootstrap模式创建数据集簇,并读取后端接口postgres.bki文件来创建模板数据库。
具体到文件:
1.创建pg的data主目录,以及其所有子目录
2.生成配置文件postgresql.conf
3.创建template1数据库
4.对template1数据库加载初始化数据
5.复制template1到template0数据库
6.复制template1到postgres数据库



相关文档
最新文档