Ubuntu中安裝PostgreSQL步驟及常規(guī)操作指南
一、安裝 PostgreSQL
最新版本安裝(推薦)
# 添加官方源并安裝 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt update sudo apt install postgresql postgresql-contrib
安裝特定版本(如 14)
sudo apt install postgresql-14 postgresql-client-14
二、基本服務(wù)管理
| 命令 | 說(shuō)明 |
|---|---|
sudo service postgresql start | 啟動(dòng)服務(wù) |
sudo service postgresql stop | 停止服務(wù) |
sudo service postgresql restart | 重啟服務(wù) |
sudo service postgresql status | 查看狀態(tài) |
sudo systemctl enable postgresql | 設(shè)置開(kāi)機(jī)自啟 |
三、連接數(shù)據(jù)庫(kù)
# 切換到 postgres 系統(tǒng)用戶 sudo -i -u postgres # 連接默認(rèn)數(shù)據(jù)庫(kù) psql # 或指定數(shù)據(jù)庫(kù): psql mydb # 直接連接(無(wú)需切換用戶) sudo -u postgres psql
四、常規(guī)數(shù)據(jù)庫(kù)操作
1. 用戶與權(quán)限管理
-- 創(chuàng)建用戶 CREATE USER devuser WITH PASSWORD 'securepass'; -- 修改密碼 ALTER USER devuser PASSWORD 'newpass'; -- 授予數(shù)據(jù)庫(kù)權(quán)限 GRANT ALL PRIVILEGES ON DATABASE mydb TO devuser; -- 刪除用戶 DROP USER IF EXISTS olduser;
2. 數(shù)據(jù)庫(kù)管理
-- 創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE mydb OWNER devuser ENCODING 'UTF8'; -- 列出所有數(shù)據(jù)庫(kù) \l -- 切換數(shù)據(jù)庫(kù) \c mydb -- 刪除數(shù)據(jù)庫(kù) DROP DATABASE olddb;
3. 表操作
-- 創(chuàng)建表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 查看所有表
\dt
-- 查看表結(jié)構(gòu)
\d users
-- 刪除表
DROP TABLE users;
4. 數(shù)據(jù)操作
-- 插入數(shù)據(jù)
INSERT INTO users (name, email)
VALUES ('Alice', 'alice@example.com');
-- 查詢數(shù)據(jù)
SELECT * FROM users WHERE name LIKE 'A%';
-- 更新數(shù)據(jù)
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- 刪除數(shù)據(jù)
DELETE FROM users WHERE id = 1;
五、常用 psql 元命令
| 命令 | 說(shuō)明 |
|---|---|
\? | 查看幫助 |
\l | 列出數(shù)據(jù)庫(kù) |
\c dbname | 切換數(shù)據(jù)庫(kù) |
\dt | 列出表 |
\d table | 查看表結(jié)構(gòu) |
\du | 列出用戶 |
\x | 切換擴(kuò)展顯示模式 |
\timing | 開(kāi)啟/關(guān)閉執(zhí)行時(shí)間 |
\q | 退出 psql |
\i filename.sql | 執(zhí)行 SQL 文件 |
\e | 在編輯器中編輯命令 |
\conninfo | 顯示連接信息 |
六、備份與恢復(fù)
1. 使用 pg_dump
# 備份單個(gè)數(shù)據(jù)庫(kù) sudo -u postgres pg_dump mydb > mydb_backup.sql # 備份所有數(shù)據(jù)庫(kù) sudo -u postgres pg_dumpall > all_backup.sql # 壓縮備份 sudo -u postgres pg_dump mydb | gzip > mydb_backup.gz
2. 恢復(fù)數(shù)據(jù)庫(kù)
# 恢復(fù) SQL 備份 sudo -u postgres psql -d mydb -f mydb_backup.sql # 恢復(fù)壓縮備份 gunzip -c mydb_backup.gz | sudo -u postgres psql mydb
七、配置遠(yuǎn)程訪問(wèn)
修改配置文件:
sudo nano /etc/postgresql/14/main/postgresql.conf
取消注釋并修改:
listen_addresses = '*'
編輯訪問(wèn)規(guī)則:
sudo nano /etc/postgresql/14/main/pg_hba.conf
添加行:
host all all 0.0.0.0/0 md5
重啟服務(wù):
sudo service postgresql restart
八、性能監(jiān)控
-- 查看活動(dòng)連接
SELECT * FROM pg_stat_activity;
-- 查看鎖信息
SELECT * FROM pg_locks;
-- 查看表大小
SELECT pg_size_pretty(pg_total_relation_size('users'));
-- 查看索引使用情況
SELECT * FROM pg_stat_user_indexes;
九、擴(kuò)展管理
-- 安裝擴(kuò)展(如 PostGIS) CREATE EXTENSION postgis; -- 查看已安裝擴(kuò)展 \dx -- 卸載擴(kuò)展 DROP EXTENSION postgis;
十、日志管理
# 查看錯(cuò)誤日志位置 sudo -u postgres psql -c "SHOW log_directory;" # 常用日志配置 (/etc/postgresql/14/main/postgresql.conf) log_destination = 'stderr' logging_collector = on log_line_prefix = '%m [%p] %q%u@%d ' log_statement = 'all' # 記錄所有SQL
十一、版本升級(jí)
# 安裝新版本(如 15) sudo apt install postgresql-15 # 停止服務(wù) sudo service postgresql stop # 升級(jí)數(shù)據(jù) sudo pg_upgradecluster 14 main 15 # 刪除舊版本(確認(rèn)新版本正常后) sudo pg_dropcluster 14 main
常用管理工具推薦
- pgAdmin (GUI):
sudo apt install pgadmin4
- 命令行工具:
sudo apt install postgresql-client-14
連接示例
# 本地連接 psql -U devuser -d mydb # 遠(yuǎn)程連接 psql -h 192.168.1.10 -p 5432 -U devuser -d mydb
提示:生產(chǎn)環(huán)境建議:
- 定期備份 (
cron + pg_dump)- 啟用 WAL 歸檔
- 配置定期 vacuum
- 使用連接池 (pgBouncer)
總結(jié)
到此這篇關(guān)于Ubuntu中安裝PostgreSQL步驟及常規(guī)操作指南的文章就介紹到這了,更多相關(guān)Ubuntu安裝PostgreSQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL 實(shí)現(xiàn)登錄及修改密碼操作
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)登錄及修改密碼操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
sqoop 實(shí)現(xiàn)將postgresql表導(dǎo)入hive表
這篇文章主要介紹了sqoop 實(shí)現(xiàn)將postgresql表導(dǎo)入hive表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
PostgreSQL 分區(qū)表的 ALTER TABLE 語(yǔ)句執(zhí)行機(jī)制解析
這篇文章主要介紹了PostgreSQL 分區(qū)表的 ALTER TABLE 語(yǔ)句執(zhí)行機(jī)制解析的相關(guān)資料,需要的朋友可以參考下2026-02-02
PostgreSQL基于Citus實(shí)現(xiàn)分布式集群的全過(guò)程
Citus是一個(gè)PostgreSQL擴(kuò)展,它將Postgres轉(zhuǎn)換為分布式數(shù)據(jù)庫(kù),因此您可以在任何規(guī)模上實(shí)現(xiàn)高性能,因客戶的需求,本文詳細(xì)闡述了PostgreSQL基于Citus實(shí)現(xiàn)的分布式集群的全過(guò)程,需要的朋友可以參考下2023-11-11
PostgreSQL分區(qū)表(partitioning)應(yīng)用實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了PostgreSQL分區(qū)表(partitioning)應(yīng)用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Postgresql ALTER語(yǔ)句常用操作小結(jié)
這篇文章主要介紹了Postgresql ALTER語(yǔ)句常用操作小結(jié),本文講解了增加一列、刪除一列、更改列的數(shù)據(jù)類(lèi)型、表的重命名、更改列的名字、字段的not null設(shè)置等常用操作的代碼示例,需要的朋友可以參考下2015-06-06
使用postgresql獲取當(dāng)前或某一時(shí)間段的年月日
這篇文章主要給大家介紹了關(guān)于使用postgresql獲取當(dāng)前或某一時(shí)間段的年月日的相關(guān)資料,在PostgreSQL中可以使用函數(shù) NOW() 來(lái)查詢當(dāng)前時(shí)間,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
PostgreSQL 用戶名大小寫(xiě)規(guī)則小結(jié)
PostgreSQL默認(rèn)不區(qū)分用戶名大小寫(xiě),創(chuàng)建和連接時(shí)自動(dòng)轉(zhuǎn)為小寫(xiě),使用雙引號(hào)可強(qiáng)制區(qū)分,下面就來(lái)介紹一下PostgreSQL 用戶名大小寫(xiě)規(guī)則,感興趣的可以了解一下2025-06-06
PostgreSQL通過(guò)oracle_fdw訪問(wèn)Oracle數(shù)據(jù)的實(shí)現(xiàn)步驟
通過(guò)類(lèi)似于Oracle數(shù)據(jù)庫(kù)DBLINK的方式去實(shí)現(xiàn)PostgreSQL訪問(wèn)oracle數(shù)據(jù)庫(kù),本地搭建測(cè)試環(huán)境并配置相關(guān)配置,接下來(lái)通過(guò)本文給大家分享PostgreSQL通過(guò)oracle_fdw訪問(wèn)Oracle數(shù)據(jù)的實(shí)現(xiàn)步驟,感興趣的朋友一起看看吧2021-05-05

