A. 為什麼linux不能安裝最新版本的postgresql呢 (postgresql-9.1.2.tar.gz)
可選擇源碼編譯安裝:
一、在root用戶下使用源碼編譯方式安裝PostgreSQL
1. 解壓
tar jxvf postgresql-9.1.2.tar.bz2
2. 檢查依賴軟體包
rpm -qa | grep readline
rpm -qa | grep zlib
rpm -qa | grep gcc
rpm -qa | grep make
3. 如果缺少依賴軟體包,安裝以下軟體包
gcc
make
zlib-devel
readline-devel
4. 配置PostgreSQL
cd postgresql-9.1.2
./configure --prefix=/usr/local/pgsql
5. 編譯並安裝PostgreSQL
make
make install
6. 創建組和用戶
groupadd postgres
useradd -g postgres postgres
passwd postgres
7. 創建資料庫庫文件存儲目錄、給postgres賦予許可權:
mkdir /usr/local/pgsql/data
cd /usr/local/pgsql
chown postgres.postgres data
touch /var/log/pgsql.log
chown postgres.postgres /var/log/pgsql.log
8. 初始化資料庫目錄(在postgres用戶下執行命令)
cd /usr/local/pgsql/
./bin/initdb -E UTF-8 -D /usr/local/pgsql/data --locale=zh_CN.UTF-8
B. 可以不安裝postgresql,只安裝psql嗎
PostgreSQL是現在比較流行的資料庫之一,這個起源於伯克利(BSD)的資料庫研究計劃目前已經衍生成一項國際開發項目,並且有非常廣泛的用戶。據我了解國內四大國產資料庫,其中三個都是基於PostgreSQL開發的。並且,因為許可證的靈活,任何人都可以以任何目的免費使用,修改,和分發 PostgreSQL,不管是私用,商用,還是學術研究使用。本文只是簡單介紹一下postgresql的安裝和簡單的使用,語法方面涉及的比較少,以方便新手上路為目的。
1.系統環境和安裝方法 ;
PostgreSQL的安裝方法比較靈活,可以用源碼包安裝,也可以用您使用的發行版所帶的軟體包來安裝,還可以採用在線安裝……
1.1 系統環境:Ubuntu Linux 7.04 ;Fedora;Slackware;
1.2 安裝;
Ubuntu下安裝軟體其實很簡單,用新立得軟體包管理器搜索psql便能查到postgresql-client-8.2(同時可以搜到8.1版本,哪一個都可以),選中-應用即可。或者在終端下輸入
xiaop@localhost$ sudo apt-get install postgresql-8.2
Slackware下安裝:請到 linuxpackages.net 上查找您所用系統的對應版本,用pkginstall 來安裝,或您安裝slap-get 工具,在線自動安裝;要用到root許可權,可以通用sudo。關於su和sudo的參考;《Linux 系統中的超級許可權的控制》 安裝postgresql的軟體包,可用下面的辦法 ;
xiaop@localhost# pkginstall post*.tgz
或
xiaop@localhost# slapt-get --install postgresql-8.2.4
在Fedora中,您可以用軟體包在線安裝工具來安裝註:這樣就安裝好了PostgreSQL 8.2了,該安裝將自動創建一個預設的資料庫集群(pgsqldb.org中的譯法)「main」,且生成一個資料庫超級用戶postgres。
2. 啟動PostgreSQL 資料庫伺服器;
2.1 在流行Linux發行版的啟動方法;
在Ubuntu系統中,伺服器啟動腳本放在 /etc/init.d目錄中,您可以用下面的方法來啟動,對於Fedora和Gentoo 也是類似的;
xiaop@localhost~# /etc/init.d/postgresql-8.2 start 註:啟動;
xiaop@localhost~# /etc/init.d/postgresql-8.2 restart 註:重啟;
xiaop@localhost~# /etc/init.d/postgresql-8.2 stop 註:停止;
xiaop@localhost~# /etc/init.d/postgresql-8.2 status 註:查看狀態;
在Slackware中,PostgreSQL的啟動腳本放在 /etc/rc.d目錄中,如果您用從linuxpackages.net 上下載的軟體包或在線安裝的軟體包;
xiaop@localhost~# /etc/rc.d/rc.postgres start
如果您用源碼包編譯安裝,啟動PostgreSQL,請查看PostgreSQL官方文檔;
2.2 關於 PostgreSQL啟動和存儲目錄;
啟動PostgreSQL伺服器時,一般是以postgres 用戶來啟動的,自編譯安裝的除外;對於資料庫的存儲一般是放在/var/lib中的相關目錄,比如 /var/lib/pgsql或 /var/lib/postgresql/8.2/main/ 目錄等;不同的發行版可能不太一樣,不過還是大同小異,您可以通過修改數據存儲位置把資料庫存在其它地方;
3.創建用戶
添加用戶命令格式。
createuser 是 SQL 命令 CREATE USER的封裝。
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主機名] [-p port] 用戶名
參數說明:
[-a]:允許創建其他用戶,相當於創建一個超級用戶;
[-A]:不允許此用戶創建其他用戶;
[-d]:允許此用戶創建資料庫;
[-D]:不允許此用戶創建資料庫;
[-e]:將執行過程顯示到Shell上;
[-P]:創建用戶時,同時設置密碼;
[-h 主機名]:為某個主機上的Postgres創建用戶;
[-p port]:與-h參數一同使用,指定主機的埠。
3.1添加用戶;
3.1.1不帶參數的創建用戶;
xiaop@localhost~$ createuser testuser
Shall the new user be allowed to create databases? (y/n) n --------是否可以創建資料庫:否
Shall the new user be allowed to create more new users? (y/n) n ---------是否可以創建新用戶:否
CREATE USER
註:不帶參數創建用戶時,Postgres會詢問此用戶的許可權,上面的例子創建了一個普通用戶;
3.1.2 為指定的主機和埠上創建用戶 ;
xiaop@localhost~$ createuser -h 172.28.18.51 -p 5000 -D -A -e testuser
CREATE USER joe NOCREATEDB NOCREATEUSER;
CREATE USER
註:這個命令為主機172.28.18.51的5000埠創建用戶testuser, 此用戶不可以創建資料庫和其他用戶。
3.1.3創建超級用戶;
xiaop@localhost~$ createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER joe PASSWORD 'testuser' CREATEDB CREATEUSER;
CREATE USER
註:這個命令在本地創建一個超級用戶(-a),可以創建資料庫(-d), 同時要求設置密碼。
3.2 刪除用戶:
命令:dropuser [-i] [-h] [-p] [-e] 用戶名 參數說明:
[ -i]:刪除用戶前,要求確認;
[-h 主機名]:刪除某個主機上的Postgres用戶;
[-p port]:與-h參數一同使用,指定主機的埠;
[-e]:將執行過程顯示到Shell上。
3.2.1 刪除本地的Postgres用戶;
xiaop@localhost~$ dropuser testuser
DROP USER
3.2.2 刪除遠程Postgres伺服器上的用戶;
xiaop@localhost~$ dropuser -p 5000 -h 172.28.18.51 -i -e testuser
User "testuser" and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER "testuser"
DROP USER
註:此命令刪除主機172.28.18.51(-h)的5000埠(-p)的用戶testuser,並且需要確認(-i);
4. 創建和刪除資料庫;
4.1創建資料庫
看看您能否訪問資料庫伺服器的第一個例子就是試著創建一個資料庫;
要創建一個新的資料庫,在我們這個例子里叫 mydb,您可以使用下面的命令:
xiaop@localhost~$ createdb mydb
它應該生成下面這樣的響應:
CREATE DATABASE
如果這樣,那麼這一步就成功了,如果您看到類似下面這樣的信息
createdb: command not found
那麼就是PostgreSQL沒有安裝好,要麼是就根本沒裝上;
您還可以用其它名字創建資料庫。 PostgreSQL 允許您在一個節點上創建任意數量的資料庫。 資料庫名必須是以字母開頭並且小於 63 個字元長。 一個方便的做法是創建和您當前用戶名同名的資料庫。 許多工具假設該資料庫名為預設資料庫名,所以這樣可以節省您的敲鍵。要創建這樣的資料庫,只需要鍵入 :
xiaop@localhost~$ createdb
C. Linux 下常用的(軟體包)安裝源
我最常用的 Linux 發行版為 CentOS。為了擁有一個「干凈」的系統,盡量減少不必要的軟體安裝,我一般都會採用 minimal 版本安裝。但安裝完成後並不能滿足我的基本需求;對我來說,還需要安裝一些常用的(對我來說)軟體包。而我需要有很多軟體,在CentOS 自帶的yum 源中並沒有。所以就促使我去尋找其他的可用 yum 軟體源。
企業級 Linux 擴展軟體包(Extra Packages for Enterprise Linux 即:EPEL)是一個Fedora特殊興趣小組為企業級 Linux創建、維護和管理的高質量的附加軟體包,企業級Linux 包括但不限於 Red Hat Enterprise Linux(RHEL),CentOS,Scientific Linux(SL)和 Oracle Linux(OL)。
我一般是在 fedora 官網獲取 epel-release 軟體: http://fedoraproject.org/wiki/EPEL 。
我在 CentOS 6 系統下會使用如下指令安裝 epel-release
Remi repository 是包含最新版本 php 和 MySQL 包的 Linux 源,由 Remi 提供維護。有個這個源之後,使用 YUM 安裝或更新 PHP、MySQL、phpMyAdmin 等伺服器相關程序的時候就非常方便了。
它依賴 EPEL 軟體包。
我一般是在其官網獲取 remi-release 軟體: Remi's RPM repository
我在 CentOS 6 系統下會使用如下指令安裝 remi-relsase:
RepoForge 的前身是 RPMForge 。
RepoForge項目維護Red Hat Enterprise Linux(RHEL),CentOS和Scientific Linux的RPM軟體包。它提供了一組與各種RHEL派生版本兼容的存儲庫。
我一般是在其官網獲取 RepoForge (rpmforge-release)軟體: RepoForge
我在 CentOS 6 (x86)系統下會使用如下指令安裝 rpmforge-release:
以上三個 Linux 軟體源已經夠我當前使用了,如果以後在Linux使用過程中有用到其他的軟體源,我會在此文件下做補充。
很多時候在CentOS系統下默認的Postgresql版本並不能滿足需求。如我安裝GitLab時就要求Postgresql在9.1以上,但CentOS 系統 6.9 版本僅提供了Postgresql 的 8.4.20 版本,而CentOS 7 默認也無法安裝Postgresql 9 及以上版本。
當然你可以使用源碼安裝,但對於大多數人來說應該會選擇一個更簡單的方法。那就去給你的系統安裝一個postgresql的yum源吧。
網址: https://yum.postgresql.org/
進到首頁你應該可以看到以下內容:
選一個Postgresql的發行版本點進去,會看到如下內容:
對應於不同的發行版本,針對不同的操作系統有著不同的yum源。你可以根據你的操作系統進行選擇。
比如我選擇了 Postgresql 9.6 版本,而我的操作系統是 CentOS 6.9 ,x86 架構。我只需要執行以下命令:
然後在 /etc/yum.repos.d 目錄下會多出一個 文件 pgdg-96-centos.repo 。
至此,你就可以使用命令 yum install postgresql96 來安裝postgresql 9.6 版本最新的發行版了軟體了。
在CentOS6系統中,默認能安裝的MySQL最高版本為5.5.x;而到CentOS7中由於Oracle收購MySQL,因擔心版權問題,CentOS7放棄了MySQL而採用了Mariadb,最高支持版本為5.5.x。對於用習慣了MySQL的,並且想使用高版本MySQL的我來說,系統默認支持已經滿足不了需求。
可以從 這里 選擇一個你所需要的yum源進行安裝。
然後:
然後你就可以執行以下命令安裝 MySQL 5.7了
在MongoDB的官網上可以找到MongoDB的yum安裝源配置方式。
MongoDB 官網YUM源配置方式
然後在打開的頁面中會有如下信息:
你需要根據自己的需求調整版本號,然後創建一個/etc/yum.repos.d/mongodb-org-y.x.repo文件,把上面的配置寫進去。
完成以上步驟後,就可以使用以下命令安裝MongoDB了。
D. postgresql資料庫linux源碼解壓後找不到configure 版本為postgresql-9.2.1-1-linux-binaries
你下的是編譯完的二進製版,源碼版在Source code下點file brower,下載postgresql-9.2.1.tar.gz