PostgreSQL介绍
PostgreSQL角色和数据库
默认情况下,Postgres使用称为“角色”的概念来处理身份验证和授权。这些在某些方面类似于普通的Unix风格的账户,但是Postgres并没有区分用户和组,而是倾向于更灵活的术语“角色”。
安装后,Postgres被设置为使用ident身份验证,这意味着它将Postgres角色与匹配的Unix / Linux系统帐户相关联。如果Postgres中存在一个角色,则具有相同名称的Unix / Linux用户名可以作为该角色登录。
安装过程创建了一个名为postgres的用户帐户,它与默认的Postgres角色相关联。为了使用Postgres,您可以登录到该帐户。
安装
sudo apt update sudo apt install postgresql postgresql-contrib
postgresql常用命令
\q 退出交互式环境 \h 查看所有sql命令 \? 查看psql命令 \l 查看数据库 \du 查看所有用户 \dt 查看表 \d table_name describ table \c dbname 切换到新数据库 \c show current DB name and user \conninfo 显示客户端的连接信息 SELECT tablename FROM pg_tables; 查看所有表
sudo service postgresql start # 启动 sudo service postgresql restart # 重启 sudo service postgresql status # 查看状态 sudo service postgresql stop # 停止
数据库操作
create database db_name \g ; # 创建数据库 drop database db_name \g ; # 删除数据库 sudo -u postgres createdb db_name sudo -u postgres dropdb db_name
在不切换帐户的情况下进入交互式Postgres会话
sudo -u postgres psql
创建数据库
sudo -u postgres createdb sammy
Postgresql远程访问
默认配置下只允许本机连接到postgreSQL,要在其他机器上远程连接到postgreSQL数据库还需要修改相应的配置
修改数据库密码
sudo -u postgres psql \password
修改监听地址
sudo vi /etc/postgresql/10/main/postgresql.conf
"#listen_addresses = \'localhost\'"中的注释去掉并改为listen_addresses = \'*\',允许远程客户端连接
修改可访问的ip段
sudo vi /etc/postgresql/10/main/pg_hba.conf 在文件末尾添加: host all all 0.0.0.0 0.0.0.0 md5 ,表示允许任何IP连接
导入
方式一:连接db后执行SQL文件
首先通过psql连接到对应的db:
psql -d db1 -U userA
接着输入密码,进入数据库后,输入:
\i /pathA/xxx.sql
这里有个问题,如果你把SQL文件的路径里的路径分隔符写成了\,会报错说Permission denied。
这里的文件路径必须使用Linux平台下的路径分隔符/,否则会报错。
方式二:直接通过psql命令执行SQL文件
这种方式无需先登录数据库,直接用一个命令就可以了:
psql -d db1 -U userA -f /pathA/xxx.sql
接着输入密码即可执行SQL文件到对应的db里。
导出
客户端工具
window10安装pgAdmin 4:https://www.pgadmin.org/download/pgadmin-4-windows/下载pgAdmin