數(shù)據(jù)庫學(xué)習(xí):PostgreSQL

Windows下的安裝與配置

下載地址:Download PostgreSQL Database for Windows, Linux and MacOS & 32-bit or 64-bit Versions | EDB (enterprisedb.com)

  1. 選擇合適的版本,下載安裝。安裝過程中需要輸入將來使用的超管密碼,以及數(shù)據(jù)庫服務(wù)端口,需要記錄保管。安裝完還有一個(gè)插件捆綁安裝推薦,后期用到再安裝也可以。
  2. 安裝完成后,可以借助命令行使用pgSQL,也可使用管理界面。
    • 找開始菜單應(yīng)用列表中的PostgreSQL -> SQL Shell,可通過命令行使用PostgreSQL。
    • PostgreSQL -> pgAdmin 4 -> 輸入密碼登錄 -> 點(diǎn)開 左側(cè)PostgreSQL 14。這里分別有數(shù)據(jù)庫管理和角色管理。
  3. 新建角色,可省略:右擊 Login/Group Roles,Create,輸入名字,勾選"可登錄"、"可創(chuàng)建數(shù)據(jù)庫",保存。(實(shí)際操作時(shí)發(fā)現(xiàn)自己新建的角色不能用,可用內(nèi)置角色postgres)
  4. 創(chuàng)建新數(shù)據(jù)庫:右擊Databases,Create,輸入名字,輸入所屬角色,保存。

archLinux下的安裝與配置

更新庫并安裝:

sudo pacman -Syu  postgresql

初始化(必須):

sudo su - postgres -c "initdb --locale zh_CN.UTF-8 -E UTF8 -D '/var/lib/postgres/data'"

其中,本人將原本的en_US改為了zh_CN,未見異常。想要撤銷的話,只需要把'/var/lib/postgres/data'下面的內(nèi)容清空。

啟動(dòng)/開機(jī)啟動(dòng) PostgreSQL:

systemctl start postgresql.servicesystemctl enable postgresql.service

切換到postgres用戶,然后登錄(初始無密碼):

sudo -i -u postgrespsql

要退出psql或返回原用戶,都是用exit命令。PostgreSQL的用戶跟系統(tǒng)用戶有些關(guān)聯(lián),前者必須也是后者。在初始化過程中會(huì)在系統(tǒng)中創(chuàng)建postgres用戶,同時(shí)也是數(shù)據(jù)庫的超級(jí)權(quán)限用戶,postgres用戶可以創(chuàng)建其他數(shù)據(jù)庫用戶。

提示: 如果創(chuàng)建一個(gè)與你的系統(tǒng)用戶同名的數(shù)據(jù)庫用戶,并允許其訪問 PostgreSQL 數(shù)據(jù)庫,那么在登錄PostgreSQL 數(shù)據(jù)庫 shell 的時(shí)候無需切換用戶(這樣做會(huì)比較方便)。

命令行基本操作^1

數(shù)據(jù)庫shell外

添加數(shù)據(jù)庫(須在原用戶操作):

連接數(shù)據(jù)庫shell(須用postgres用戶,所以先切一下用戶):

sudo -i -u postgrespsql -d myDatabaseName

也可以一步進(jìn)入postgres用戶的myDatabaseName數(shù)據(jù)庫,與上面效果一樣:

psql -U postgres -d myDatabaseName

若要?jiǎng)?chuàng)建用戶,要在數(shù)據(jù)庫程序外,用postgres用戶執(zhí)行:

createuser --interactive myUserName

數(shù)據(jù)庫shell內(nèi)

注意:數(shù)據(jù)庫內(nèi)的SQL語句,建議大寫,必須分號(hào)結(jié)尾。進(jìn)入數(shù)據(jù)庫后可修改密碼:

alter user postgres with password ' *** 密碼 *** ';

如果有其他用戶,可以把postgres換成其他用戶的名。一些常用的命令:

\c myDatabaseName     # 連接到數(shù)據(jù)庫myDatabaseName\du    # 列出所有用戶以及他們的權(quán)限\dt    # 展示當(dāng)前數(shù)據(jù)庫中所有的表相關(guān)的匯總信息\q    # 退出psql

pg_dump數(shù)據(jù)庫遷移

遷移數(shù)據(jù)庫所有結(jié)構(gòu)和數(shù)據(jù),也就是數(shù)據(jù)庫的備份與恢復(fù)。

pg_dump

將數(shù)據(jù)庫cloudschool_db的結(jié)構(gòu)和數(shù)據(jù)導(dǎo)出到copy.sql文件

pg_dump -U postgres cloudschool_db > copy.sql

以帶有列名的INSERT命令形式轉(zhuǎn)儲(chǔ)數(shù)據(jù):

E:\>pg_dump -U postgres --column-inserts TestDb1 > TestDb15.sql

經(jīng)測試, 以上兩種方法可生成sql格式的文本文件,但使用sql代碼的方式恢復(fù)數(shù)據(jù)庫并未成功(可能是本人技術(shù)還不到位)。

pgAdmin圖形界面

導(dǎo)出

本質(zhì)上也是使用pg_dump,首先設(shè)置命令文件所在目錄,找File->Preferences->Paths->Binary paths->PostgreSQL Binary Path找到對(duì)應(yīng)的版本,定位到對(duì)應(yīng)的bin文件夾

Image備份時(shí)在單個(gè)數(shù)據(jù)庫上點(diǎn)右鍵,點(diǎn)擊Backups,寫好文件名,編碼方式選utf8,角色選數(shù)據(jù)庫的創(chuàng)建者,其他高級(jí)選項(xiàng)可在dump options里選擇。

備份之后,默認(rèn)在“文檔”里生成一個(gè)無格式文件,這就是備份文件。

重建導(dǎo)入

用備份文件重建時(shí),需要先建庫,結(jié)構(gòu)和內(nèi)容可以沒有,庫名可以不同。在新庫上點(diǎn)右鍵,選擇restore,選擇之前的備份文件

本文使用 Zhihu On VSCode 創(chuàng)作并發(fā)布

本文使用 文章同步助手 同步

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容