好記性不如爛筆頭啊,還是記錄一下!
最近自己做的獨(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í)慣,列出本文參考和引用的文檔和博客,致以崇高的敬意,感興趣的可以去看看
- http://postgresapp.com/
- http://postgresapp.com/documentation/cli-tools.html
- 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.conf和postgresql.conf
-
pg_hba.conf中主要是一些權(quán)限配置,就是配置了哪些IP用什么方式可以登錄到數(shù)據(jù)庫 -
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:退出