PostgreSQL
注意:
PostgreSQL安装、psql工具、PostgreSQL角色和数据库管理、启用远程访问PostgreSQL服务器(慎用)、PostgreSQL Shell命令需要以root或有sudo权限的用户登录
AI导读:本文介绍了PostgreSQL的安装和管理,包括使用psql工具进行数据库操作、创建角色和数据库、以及启用远程访问的注意事项。在安装PostgreSQL后,用户需要以root或有sudo权限的身份登录,并可切换到postgres用户使用psql工具。文中详细说明了创建角色、数据库及授权的步骤,并警告关于远程访问时应谨慎设置防火墙和配置文件。附录部分列出了常用的PostgreSQL Shell命令,以帮助用户进行基本的数据库操作和管理。
Step1 安装PostgreSQL
1 | sudo apt update |
状态
1 | sudo systemctl restart postgresql.service |
打印版本
1 | sudo -u postgres psql -c "SELECT version();" |
Step2 psql工具
为了以postgres
用户身份登录 PostgreSQL 服务器,首先切换用户,然后使用psql
工具访问 PostgreSQL。
1 | sudo su - postgres |
退出 PostgreSQL Shell,输入:
1 | \q |
也可以不切换用户,而使用sudo
命令访问 PostgreSQL:
1 | sudo -u postgres psql |
Step3 PostgreSQL角色和数据库管理
具体见[附录1](## 附录1 PostgreSQL Shell命令)
创建PostgreSQL角色
1 | sudo su - postgres -c "createuser manpower" |
创建一个数据库
1 | sudo su - postgres -c "createdb manpowerdb" |
授权用户操作数据库
1 | sudo -u postgres psql # 进入psql |
Step4 启用远程访问PostgreSQL服务器(慎用)
公网ip慎用,若使用请确保防火墙仅接受信任IP的连接
修改配置文件
1 | sudo vi /etc/postgresql/12/main/postgresql.conf |
在CONNECTIONS AND AUTHENTICATION
一节添加listen_addresses = '*'
1 | # - Connection Settings - |
保存文件并且重启 PostgreSQL 服务:
1 | sudo service postgresql restart |
使用ss
工具验证修改:
1 | ss -nlt | grep 5432 |
在你的防火墙上打开端口5432
端口
1 | sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432 |
附录1 PostgreSQL Shell命令
基本使用
为postgres用户设置一个密码
1 | \password postgres |
建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码
1 | CREATE USER dbuser WITH PASSWORD 'password'; |
创建用户数据库,这里为exampledb,并指定所有者为dbuser
1 | CREATE DATABASE exampledb OWNER dbuser; |
将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限
1 | GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser; |
控制台命令
除了前面已经用到的\password命令(设置密码)和\q命令(退出)以外,控制台还提供一系列其他命令。
\h:查看SQL命令的解释,比如\h select。
?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
数据库操作
基本的数据库操作,就是使用一般的SQL语言
1 | # 创建新表 |
参考文章:
参考链接