好記性不如爛筆頭啊捺疼,還是記錄一下!
最近自己做的獨立游戲需要對數(shù)據(jù)庫選型,主要有兩個選擇:
1. MySQL號稱最流行的數(shù)據(jù)庫
2. PostgreSQL號稱最先進的數(shù)據(jù)庫
最后經(jīng)過一番考量,最后選擇了PostgreSQL
,本篇博客主要記錄的安裝過程蔗包,可供同學們參考。
本篇博客介紹的是Mac下的安裝過程
1. 簡介
1.PostgreSQL: 是以加州大學伯克利分校計算機系開發(fā)的 POSTGRES昆码,現(xiàn)在已經(jīng)更名為PostgreSQL气忠,版本 4.2為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。PostgreSQL支持大部分 SQL標準并且提供了許多其他現(xiàn)代特性:復雜查詢赋咽、外鍵旧噪、觸發(fā)器、視圖脓匿、事務(wù)完整性淘钟、MVCC。同樣陪毡,PostgreSQL 可以用許多方法擴展米母,比如, 通過增加新的數(shù)據(jù)類型毡琉、函數(shù)铁瞒、操作符、聚集函數(shù)桅滋、索引慧耍。免費使用身辨、修改、和分發(fā) PostgreSQL芍碧,不管是私用煌珊、商用、還是學術(shù)研究使用泌豆。
2.參考文獻
老習慣定庵,列出本文參考和引用的文檔和博客,致以崇高的敬意踪危,感興趣的可以去看看
- http://postgresapp.com/
- http://postgresapp.com/documentation/cli-tools.html
- http://www.yiibai.com/postgresql/2013080439.html
3.開始安裝
安裝很簡單蔬浙,我是直接用brew
安裝的:
brew install postgresql
等待運行完后,就安裝在了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
是我自動化安裝腳本中的變量贞远,可以改為你任何想初始化到的路徑下敛滋,我用的是POSTGRESQL_DATABASE_PATH='/usr/local/data/postgres'
然后進入初始化后的目錄:
cd ${POSTGRESQL_DATABASE_PATH}
可以在這個目錄下看到很多文件,需要修改的是pg_hba.conf
和postgresql.conf
-
pg_hba.conf
中主要是一些權(quán)限配置兴革,就是配置了哪些IP用什么方式可以登錄到數(shù)據(jù)庫 -
postgresql.conf
主要就是一些數(shù)據(jù)庫的細節(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
我比較懶,直接用的命令修改杂曲,方便自動話工具使用庶艾,同學們可以直接用編輯器打開找到對應(yīng)的行進行修改。
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每一天新建一個文件
sed -i "s/#log_rotation_age = 1d/log_rotation_age = 1d/g" postgresql.conf
# log超過多大重新建立個新的文件棚饵,我用的10MB
sed -i "s/#log_rotation_size = 10MB/log_rotation_size = 10MB/g" postgresql.conf
postgresql.conf
這個配置一般可以不改煤裙,因為我想改些日志方面的配置,所以也進行了修改噪漾,同學可以自行斟酌要不要修改硼砰。
5. 登錄數(shù)據(jù)庫
登錄命令的格式為:
psql -U [user] -d [database] -h [host] -p [post]
-U指定用戶,-d指定數(shù)據(jù)庫欣硼,-h指定服務(wù)器题翰,-p指定端口
直接使用psql登錄控制臺,實際上使用的是缺省數(shù)據(jù)
user:當前mac用戶
database: 用戶同名數(shù)據(jù)庫
主機: localhost
端口號: 5432诈胜,postgresql的默認端口是5432
完整的登錄命令豹障,比如使用postgres用戶登錄
psql -U postgres -d postgres
6. 初始化數(shù)據(jù)庫
初始化數(shù)據(jù)庫的方法是直接登入數(shù)據(jù)庫:
psql -U ${PSQL_USER} -d postgres
登錄后,現(xiàn)在登錄的postgres
焦匈,這是默認的數(shù)據(jù)庫血公,我們需要創(chuàng)建個自己的數(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. 常用控制臺命令
\password:設(shè)置當前登錄用戶的密碼
\h:查看SQL命令的解釋缓熟,比如\h select累魔。
\?:查看psql命令列表岩饼。
\l:列出所有數(shù)據(jù)庫。
\c [database_name]:連接其他數(shù)據(jù)庫薛夜。
\d:列出當前數(shù)據(jù)庫的所有表格。
\d [table_name]:列出某一張表格的結(jié)構(gòu)版述。
\du:列出所有用戶梯澜。
\e:打開文本編輯器。
\conninfo:列出當前數(shù)據(jù)庫和連接的信息渴析。
\password [user]: 修改用戶密碼
\q:退出