postgresql 安装和常用命令
来源:原创
时间:2021-05-14
作者:脚本小站
分类:Linux
安装postgresql-12:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y yum install postgresql12-contrib postgresql12-server postgresql12 -y
初始化:
/usr/pgsql-12/bin/postgresql-12-setup initdb
修改配置:
echo "listen_addresses = '*'" >> /var/lib/pgsql/12/data/postgresql.conf
开机启动:
systemctl enable postgresql-12 --now && systemctl status postgresql-12
修改远程连接:
/var/lib/pgsql/12/data/pg_hba.conf # IPv4 local connections: host all all 192.168.1.0/24 trust host all all 127.0.0.1/32 trust
连接数据库:
psql -U postgres -h 192.168.1.123 -p 30100 -d dbname
备份数据库的表:
PGPASSWORD="password" pg_dump --username=postgres --host=192.168.1.123 --port=30100 --dbname=db_name > /root/db.sql
备份数据库:
pg_dumpall --file xxx.sql --host 192.168.1.123 --port "30100" --username "postgres" \ --no-password --database "postgres" --verbose --data-only
数据导入:如果提示数据库不存在则需要先创建数据库。
psql -U postgres -h 192.168.1.123 -p5432 -d postgres -f postgres.sql
密码处理:
环境变量:
export PGPASSWORD="$pg_password" pg_dump -p 7432 -U scm > pg.dump # or PGPASSWORD="$pg_password" pg_dump -p 7432 -U scm > pg.dump
使用.pgpass文件:在主目录下新建~/.pgpass文件,并赋权限为600,文件内容为
hostname:port:database:username:password
备份数据库:
-W,按提示输入密码
--inserts,使用insert命令形式导出数据,这种方式比默认的copy方式慢很多,但是可用于将数据导入到非PostgreSQL数据库。
pg_dumpall -h 127.0.0.1 -U admin -p 5432 -W --inserts > bak.sql
列出输数据库:
->\l
列出当前数据库所有表:
->\d
查看某数据库大小:
select pg_database_size('dbname');
人性化显示大小:
select pg_size_pretty(pg_database_size('dbname'));
查看所有数据库大小:
select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;
其他命令:
\password:设置密码 \q:退出 \h:查看SQL命令的解释,比如\h select。 \?:查看psql命令列表。 \l:列出所有数据库。 \c [database_name]:连接其他数据库。 \d:列出当前数据库的所有表格。先使用 \c database 连接到数据库 \d [table_name]:列出某一张表格的结构。 \du:列出所有用户。 \e:打开文本编辑器。 \conninfo:列出当前数据库和连接的信息。
参考文章:
cnblogs.com/mchina/archive/2013/04/19/3028573.html
参考:
https://mytecdb.com/blogDetail.php?id=144
备份脚本:
#!/bin/bash export PGPASSWORD="123456" pg_dump --username=postgres --host=192.168.1.12 --port=5432 --dbname=postgres > ./postgres.sql