PostgreSQL安裝(Mac)

好記性不如爛筆頭啊,還是記錄一下!


最近自己做的獨(dú)立游戲需要對(duì)數(shù)據(jù)庫選型,主要有兩個(gè)選擇:
1. MySQL號(hào)稱最流行的數(shù)據(jù)庫
2. PostgreSQL號(hào)稱最先進(jìn)的數(shù)據(jù)庫
最后經(jīng)過一番考量,最后選擇了PostgreSQL,本篇博客主要記錄的安裝過程,可供同學(xué)們參考。

本篇博客介紹的是Mac下的安裝過程


1. 簡介

1.PostgreSQL: 是以加州大學(xué)伯克利分校計(jì)算機(jī)系開發(fā)的 POSTGRES,現(xiàn)在已經(jīng)更名為PostgreSQL,版本 4.2為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。PostgreSQL支持大部分 SQL標(biāo)準(zhǔn)并且提供了許多其他現(xiàn)代特性:復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴(kuò)展,比如, 通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引。免費(fèi)使用、修改、和分發(fā) PostgreSQL,不管是私用、商用、還是學(xué)術(shù)研究使用。


2.參考文獻(xiàn)

老習(xí)慣,列出本文參考和引用的文檔和博客,致以崇高的敬意,感興趣的可以去看看

  1. http://postgresapp.com/
  2. http://postgresapp.com/documentation/cli-tools.html
  3. http://www.yiibai.com/postgresql/2013080439.html

3.開始安裝

安裝很簡單,我是直接用brew安裝的:

brew install postgresql 

等待運(yùn)行完后,就安裝在了usr/local/Cellar/postgresql/目錄下

配置一下環(huán)境變量:
echo -e 'export POSTGRESQL_HOME='${POSTGRESQL_INSTALL_PATH}'\nexport PATH=${POSTGRESQL_HOME}/bin:$PATH\nexport PGDATA='${POSTGRESQL_INSTALL_PATH}'/data\n'>> /etc/profile
source /etc/profile

POSTGRESQL_INSTALL_PATH為你的安裝路徑


4.數(shù)據(jù)庫配置的初始化和修改

初始化數(shù)據(jù)庫配置:

pg_ctl -D ${POSTGRESQL_DATABASE_PATH} initdb

POSTGRESQL_DATABASE_PATH是我自動(dòng)化安裝腳本中的變量,可以改為你任何想初始化到的路徑下,我用的是POSTGRESQL_DATABASE_PATH='/usr/local/data/postgres'

然后進(jìn)入初始化后的目錄:

cd ${POSTGRESQL_DATABASE_PATH}

可以在這個(gè)目錄下看到很多文件,需要修改的是pg_hba.confpostgresql.conf

  1. pg_hba.conf中主要是一些權(quán)限配置,就是配置了哪些IP用什么方式可以登錄到數(shù)據(jù)庫
  2. postgresql.conf主要就是一些數(shù)據(jù)庫的細(xì)節(jié)配置。

pg_hba.conf我做了如下修改:

# 修改監(jiān)聽地址
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" postgresql.conf
# 修改監(jiān)聽端口
sed -i 's/#port = 5432/port = 5432/g' postgresql.conf

我比較懶,直接用的命令修改,方便自動(dòng)話工具使用,同學(xué)們可以直接用編輯器打開找到對(duì)應(yīng)的行進(jìn)行修改。

postgresql.conf我做了如下修改:

sed -i 's/#logging_collector = off/logging_collector = on/g' postgresql.conf
# log地址,SERVER_PSQL_LOG為我的服務(wù)器LOG地址,可以改為你想放的位置
sed -i "s/#log_directory = 'log'/log_directory = '"${SERVER_PSQL_LOG//\//\\\/}"'/g" postgresql.conf
# log文件的名字,我格式化為了類似postgresql-2019-08-04_000000.log這樣的名字
sed -i "s/#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'/log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'/g" postgresql.conf
sed -i "s/#log_truncate_on_rotation = off/log_truncate_on_rotation = off/g" postgresql.conf
# log每一天新建一個(gè)文件
sed -i "s/#log_rotation_age = 1d/log_rotation_age = 1d/g" postgresql.conf
# log超過多大重新建立個(gè)新的文件,我用的10MB
sed -i "s/#log_rotation_size = 10MB/log_rotation_size = 10MB/g" postgresql.conf

postgresql.conf這個(gè)配置一般可以不改,因?yàn)槲蚁敫男┤罩痉矫娴呐渲?,所以也進(jìn)行了修改,同學(xué)可以自行斟酌要不要修改。


5. 登錄數(shù)據(jù)庫

登錄命令的格式為:

psql -U [user] -d [database] -h [host] -p [post]

-U指定用戶,-d指定數(shù)據(jù)庫,-h指定服務(wù)器,-p指定端口
直接使用psql登錄控制臺(tái),實(shí)際上使用的是缺省數(shù)據(jù)

user:當(dāng)前mac用戶
database: 用戶同名數(shù)據(jù)庫
主機(jī): localhost
端口號(hào): 5432,postgresql的默認(rèn)端口是5432

完整的登錄命令,比如使用postgres用戶登錄

psql -U postgres -d postgres

6. 初始化數(shù)據(jù)庫

初始化數(shù)據(jù)庫的方法是直接登入數(shù)據(jù)庫:

psql -U ${PSQL_USER} -d postgres

登錄后,現(xiàn)在登錄的postgres,這是默認(rèn)的數(shù)據(jù)庫,我們需要?jiǎng)?chuàng)建個(gè)自己的數(shù)據(jù)庫:

-- 創(chuàng)建的數(shù)據(jù)庫
CREATE DATABASE '${PSQL_DBNAME}';
-- 修改用戶密碼
alter user ${PSQL_USER} with password '${PSQL_PASS}';

我就更懶一些了,直接用命令行:

psql -U ${PSQL_USER} -d postgres -c "CREATE DATABASE '${PSQL_DBNAME}';"
psql -U ${PSQL_USER} -d ${PSQL_DBNAME} -c "alter user ${PSQL_USER} with password '${PSQL_PASS}';"

PSQL_DBNAME為你任意想創(chuàng)建的數(shù)據(jù)名字
PSQL_USER為你postgres的用戶名字
PSQL_PASS為你任意想更改的密碼

效果也是一樣的


7. 常用控制臺(tái)命令

\password:設(shè)置當(dāng)前登錄用戶的密碼
\h:查看SQL命令的解釋,比如\h select。
\?:查看psql命令列表。
\l:列出所有數(shù)據(jù)庫。
\c [database_name]:連接其他數(shù)據(jù)庫。
\d:列出當(dāng)前數(shù)據(jù)庫的所有表格。
\d [table_name]:列出某一張表格的結(jié)構(gòu)。
\du:列出所有用戶。
\e:打開文本編輯器。
\conninfo:列出當(dāng)前數(shù)據(jù)庫和連接的信息。
\password [user]: 修改用戶密碼
\q:退出
最后編輯于
?著作權(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)容