postgresql - 常用命令
命令行相关
初始化数据库
su - postgres initdb --no-locale --encoding=UTF8 -D /usr/local/postgres/data // 初始化之后需要修改配置文件 postgresql.conf pg_hba.conf
启动、停止
// 停止 /usr/local/postgres/bin/pg_ctl -mf stop // 启动 /usr/local/postgres/bin/pg_ctl start /usr/local/postgres/bin/pg_ctl reload /usr/local/postgres/bin/pg_ctl status
创建相关
// 用户 createuser --interactive joe dropuser joe // database createdb dropdb
数据库连接
psql -U alex -d alex -h localhost -p 5432
备份、恢复
// 备份数据库 pg_dump mydb > db.sql // 自定义输出 pg_dump -Fc mydb > db.dump // 备份单个表 pg_dump -t mytab mydb > db.sql // 备份全部 pg_dumpall > db.out // pg_dumpall 的情况下恢复数据库 psql -f db.out postgres // 恢复数据库(需要先创建数据库) psql -d newdb -f db.sql pg_restore -d newdb db.dump // pg_restore不能导入纯文本格式的sql文件
查询相关
查看数据库信息
// 所有的 数据库 postgres=# \l // 当前数据库的表 alex=# \d // 所有的用户 alex=# \du // 表的详细信息 alex=# \d+ ranks // 切换数据库 alex=# \c postgres
执行sql
// 执行某个sql文件 psql -d alex -U alex -f /home/alex/users.sql // 不进入客户端进行查询 psql -d alex -U alex -c "select * from users;" // 导出csv格式 psql -d alex -c "select * from users;" -t -A -F '|' > users.csv // 加载csv alex=# \COPY users_copy FROM users.csv DELIMITER '|' NULL AS ''