1.下載postgres安裝包:
wget http://p5osdejt4.bkt.clouddn.com/postgresql-9.6.1.tar.gz
2.解壓安裝包:
tar -zxvf?postgresql-9.6.1.tar.gz
3.安裝依賴:
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
4.編譯與安裝:
cd /usr/postgresql-9.6.1
./configure --prefix=/usr/local/postgreSQL --with-perl --with-python --with-libxml --with-libxslt
make && make install
5.創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)存儲目錄:
mkdir -p /usr/local/postgreSQL/data
chown postgres:postgres /usr/local/postgreSQL/data (賦權(quán)限給postgres用戶)
6.切換用戶:
su - postgres
7.初始化數(shù)據(jù):
/usr/local/postgreSQL/bin/initdb --no-locale -U postgres -E utf8 -D /usr/local/postgreSQL/data
備注:
initdb [選項]... [DATADIR]
-D, --pgdata=DATADIR?????? 當(dāng)前數(shù)據(jù)庫簇的位置
-E, --encoding=ENCODING?? 為新數(shù)據(jù)庫設(shè)置默認(rèn)編碼
--locale=LOCALE????? 為新數(shù)據(jù)庫設(shè)置默認(rèn)語言環(huán)境
-U, --username=NAME?????? 數(shù)據(jù)庫超級用戶名
8.復(fù)制PostgreSQL執(zhí)行腳本:
cp /usr/postgresql-9.6.1/contrib/start-scripts/linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql
修改/etc/init.d/postgresql
把PGDATA改成PGDATA=/usr/local/postgreSQL/data
9.加入開機(jī)啟動:
chkconfig --add postgresql
chkconfig postgresql on
管理PG服務(wù)時也可以直接用上面啟動腳本
啟動:service postgresql start
停止:service postgresql stop
重啟:service postgresql restart
加載:service postgresql reload
狀態(tài):service postgresql status
10.postgres用戶下配置環(huán)境變量(這樣就可以直接使用psql命令):
vim /home/postgres/.bash_profile
在此文件的最后加上:export PATH=$PATH:/usr/local/postgreSQL/bin
連接數(shù)據(jù)庫
psql -h 127.0.0.1 -U postgres -p 5432 -d postgres -W
-d 指定數(shù)據(jù)庫 ,-W 輸入密碼 , -U 指定用戶,-p 指定端口,-h 指定IP
11.配置使得其他計算機(jī)也可以訪問數(shù)據(jù)庫
vim?/usr/local/postgreSQL/data/postgresql.conf
將postgresql.conf文件中的listen_addresses=’localhost’修改為listen_addresses=’*'
vim?/usr/local/postgreSQL/data/pg_hba.conf
pg_hba.conf文件添加ipv4的可訪問ip即可逐沙。例如:host all all 112.5.168.65/32 trust
11.配置tcp連接心跳等參數(shù),防止遠(yuǎn)程電腦時間長了自動斷開連接
tcp_keepalives_idle = 30 #間歇性發(fā)送TCP心跳包, 防止連接被網(wǎng)絡(luò)設(shè)備中斷.
tcp_keepalives_interval = 15 # TCP_KEEPINTVL, in seconds;
tcp_keepalives_count = 10? # TCP_KEEPCNT;
12.錯誤分析:
max_connections值太大洼畅,導(dǎo)致啟動失敗吩案。
max_connections是最大連接數(shù),即允許客戶端連接的最大連接數(shù)帝簇,增大連接可以允許接入更多的客戶端徘郭,但設(shè)置過大同樣會造成DB啟動失敗。
FATAL: could not create semaphores: No space left on device
日志查看:/usr/local/postgreSQL/data/serverlog