• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            postgresql安裝


            下載postgresql-9.1.3.tar.bz2
            解壓tar -vxf postgresql-9.1.3.tar.bz2

            安裝
            ./configure –without-readline –without-zlib
            make
            su
            make install

            設置
            mkdir /home/zc/postgresql/data
            chown postgres /home/zc/postgresql/data
            su - postgres

            /usr/local/gpsql/bin/initdb -D /home/zc/postgresql/data
            /usr/local/gpsql/bin/postgres -D /home/zc/postgresql/data >logfiel 2>&1 &
            /usr/local/pgsql/bin/createdb test
            /usr/local/pgsql/bin/psql test    // 這里修改postgres的密碼,
            test=# ALTER USER postgres WITH PASSWORD ‘postgres’;
            test=# \q

            修改系統用戶postgres的密碼(注意,上面的是數據庫用戶,這個是debian用戶, 將它們密碼設為相同的)
            root@ubuntuserver:~# sudo passwd -d postgres
            root@ubuntuserver:~# sudo -u postgres passwd

            修改配置文件
            cd /home/zc/postgresql/data
            vim postgresql.conf
            找到listen_address=’localhost’, 將前面的注釋去掉,并把’localhost’該為’*’。
            vim pg_hba.conf
            在后面加上
            host   all all 192.168.0.0/24   password
            這句的意思是:同網絡中192.168.0.*的機器可以以密碼的形式使用所有的數據庫。更具體的參數意義直接看該配置文件中的注釋就可以了

            配置好后重起數據庫
            /usr/local/pgsql/bin/pg_ctl stop -D /home/zc/postgresql/data
            /usr/local/gpsql/bin/postgres -D /home/zc/postgresql/data >logfiel 2>&1 &

            Ok
            查看是否有開啟監聽
            netstat -plunt | grep 5432

            -----------------------------------------------------------
            mkdir -p /data/postgres
            ln -s /data/postgres/ /home/
            groupadd postgres
            useradd -d /home/postgres -g postgres postgres
            chown -R postgres:postgres /data/postgres/
            su - postgres -c "/usr/local/services/postgresql/bin/initdb -A md5 --locale=en_US.utf8 --lc-ctype=en_US.utf8  -E UTF-8 -W /data/postgres"

            mkdir /data/postgres/pg_log
            chown -R postgres:postgres /data/postgres/pg_log


            posted @ 2012-05-30 16:48 多彩人生 閱讀(430) | 評論 (0)編輯 收藏

            圖文教程:手把手教你用U盤安裝Ubuntu

            作為ubuntu的愛好者,第一次制作ubuntu安裝教程,多有不足,還望包涵,呵呵~11.04因為還在測試階段,我就不折騰了,就做個10.04的用U盤安裝的教程吧。

            說到ubuntu,有接觸linux的童鞋都應該聽過,用wubi安裝只是像在電腦上安裝一個軟件,可以輕松體驗ubuntu,不過畢竟性能會打折扣,所以本人是比較喜歡直接安裝在硬盤上的。

            這種方法只適合用desktop下進行安裝,不能在文本模式下,本人試過,沒安裝成功,具體原因沒有去理了,呵呵。

            廢話不多說,開始需要準備一些東西

            1、從官網下載一個ubuntu10.04的鏡像

            2、一個大于等于1G的支持啟動的U盤

            3、UltraISO最新版

            4、可以上網的電腦一臺。

            接下來是安裝和設置的步奏,比較長,希望大家能夠耐心看下去。

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu 

            圖文教程:手把手教你用U盤安裝Ubuntu

            posted @ 2012-05-29 19:58 多彩人生 閱讀(280) | 評論 (0)編輯 收藏

            Debian 6解決中文亂碼

            DEBIAN下中文顯示

            一.首先檢查LOCALE情況

            說明:DEBIAN因為基于GNU所以,對不同地域進行了不同的包支持,以LOCALE形式存在。

            1.掛載ISO文件包,前8個ISO包就可以(這里不在講述)。

            2.啟動終端

            #apt-get install locales

            3.重新配置LOCALE

            #dpkg-reconfigure locales

            在所有的語言包選擇en_US.ISO-8859-1和zh_CN.GBK。其他en_US和zh_CN打頭的也選上。然后選擇zh_CN.GBK為默認的LOCALE,則系統為中文界面(這里也可以選en_US.ISO,使系統為英文界面)。

            3.運行LOCALE命令檢查當前的LOCALE環境

            #locale

            正確配置下會顯式

            LANG =zh_CN.GBK 

            ........................以下顯示略過

             


            ============================================================================

            Debian 6解決中文亂碼

            解決辦法:打開終端,切換至root帳號。  

             
            執行以下命令:

            apt-get install ttf-wqy-zenhei(安裝字體)   
            apt-get install ibus ibus-gtk ibus-pinyin(安裝輸入法)

            -------------------------

            設置本地化 Locale
            如果我們在安裝 Debian
            系統時,語言選擇了英語呢?進入系統后看到全是英文,是不是有點郁悶。那么我們怎樣設置成簡體中文呢?
            #如果你安裝系統時選擇的就是簡體中文,可以跳過這段,只安裝中文字體就行了。當然你也可以修改成其他的語言。

            打開終端,執行命令:
            dpkg-reconfigure locales

            把 帶 zh_CN 字樣的全部選上,然后選擇 OK 確定,在彈出的對話框中,選擇系統的 locale ,選擇zh_CN.UTF-8。


            安裝時選擇的是英語,會缺少中文字體,用以下命令安裝字體:
            apt-get install xfonts-intl-chinese wqy*

            下次重起機器,在GNOME登錄介面下方的Language,登錄語言選擇:漢語(中國)

            設置字體
            對著桌面猛擊右鍵 ===> 更改桌面背景 ===> 字體
            #
            選擇自己喜歡的字體,比如:文泉驛點陣正黑或文泉驛微米黑


            輸入法
            選擇喜歡的輸入法,比如: ibus scim
            # 注:fcitx 輸入法在debian unstable
            軟件源里才有,如果需要的話,只能自行下載安裝了。或者添加 Debian unstable 的軟件源。
            apt-get install
            ibus-pinyin ibus-table-wubi #安裝IBUS五筆和拼音

            設置輸入法
            系統 ===> 首選項 ===> IBus 設置
            #設置快捷鍵和添加輸入法到列表。

            瀏覽器
            Iceweasel瀏覽器簡體中文組件 # Iceweasel是Debian中Mozilla
            Firefox瀏覽器的一個再發布版
            #英語很菜,所以瀏覽器菜單也要是中文的
            apt-get install
            iceweasel-l10n-zh-cn

            運行瀏覽器,然后點擊
            瀏覽器菜單 ===> 編輯 ===> 首選項 ===> 內容
            # 設置瀏覽器字體


            谷歌開源瀏覽器Chromium
            # 不喜歡用這個的,也可以安裝 Chrome 瀏覽器
            apt-get install
            chromium-browser chromium-browser-l10n


            Flash插件
            執行命令:
            apt-get install flashplugin-nonfree
            #嫌手動安裝官方Flash插件麻煩的,直接安裝這個吧

            手動安裝官方Flash插件
            # 注意如果你已經用上面的命令安裝了flashplugin-nonfree,最好先卸載掉。
            #
            可能是為了避免沖突吧,不然瀏覽器不知道用哪個插件,我不清楚原因。

            源里的flash插件和官方的正式版的flash插件,在我這里播放在線視頻時,全屏會卡。我安裝的是測試版的flash插件

            先下載兩個軟件包,不然裝好了Flash插件也用不了。裝源里的 flashplugin-nonfree 會自動安裝這兩個文件。
            apt-get
            install ca-certificates libcurl3-gnutls


            到下面網址下載 Flash Player 的壓縮包
            http://labs.adobe.com/downloads/flashplayer10.html

            Download plug-in for 32-bit Linux (TAR.GZ, 4.7 MB) ← 下載這個

            然后解壓下載下來的壓縮文件,解壓出來
            libflashplayer.so

            切換到普通用戶創建存放 Flash 插件的目錄
            mkdir -pv ~/.mozilla/plugins

            進入存放 libflashplayer.so 的目錄
            cp -v libflashplayer.so ~/.mozilla/plugins

            Chromium安裝Flash插件
            su
            cp -v libflashplayer.so
            /usr/lib/chromium-browser/plugins


            影音播放器
            #Mplayer和播放前端SMplayer
            apt-get install mplayer smplayer

            設置QT程序字體
            # 在Debian GNOME桌面中QT程序的字體不清析,所以要設置一下

            先備份 /etc/fonts/conf.d/49-sansserif.conf
            cp -v
            /etc/fonts/conf.d/49-sansserif.conf{,.backup}

            修改 /etc/fonts/conf.d/49-sansserif.conf

            把文件倒數第4行中:
            sans-serif
            ↓↓
            文泉驛微米黑

            # 把sans-serif替換成文泉驛微米黑,前提你得先安裝文泉驛字庫

            PDF閱讀器
            Foxit # 如果覺得系統自帶的不好用,就下載這個吧
            http://www.foxitsoftware.com/downloads/index.php
            #找到
            Foxit Reader 1.1 Build 20090810 for Desktop Linux(bz2),下載后解壓運行目錄下的foxit就可以用。


            CHM閱讀器
            如果有Windows下的CHM文檔資料要看,那么就安裝chmsee吧
            apt-get install
            chmsee

            星際譯王
            # 星際譯王是 GNOME 中的國際化的詞典軟件
            # 本人英文單詞不會幾個的,所以是必配的詞典軟件
            apt-get
            install stardict

            #詞典下載,下載地址如下,下載tarball包,解壓后,復制到 /usr/share/stardict/dict/
            目錄下,
            #最好在這個目錄下新建文件夾來分類存放詞典。
            http://stardict.sourceforge.net/Dictionaries_zh_CN.php


            截圖工具shutter
            #默認情況下,Debian沒有安裝gnome-screenshot,可以下載功能更強大的shutter
            apt-get
            install shutter
            apt-get install libgoo-canvas-perl # 編輯功能插件

            解壓縮軟件
            apt-get install unrar
            apt-get install unzip
            apt-get install
            p7zip-full


            安裝基本編譯環境
            # 有時可能自己想編譯軟件
            apt-get install gcc
            apt-get install
            linux-headers-`uname -r`
            apt-get install make
            apt-get install automake

            虛擬機VirtualBox-OSE
            # 使用 Linux 或多或少都要用虛擬機吧,如果不喜歡OSE版,可以到官方去下載。
            apt-get
            install virtualbox-ose

            VirtualBox 官方主頁:
            http://www.virtualbox.org/


            FTP上傳下載工具
            # gFTP是X Window下的一個用Gtk開發的多線程FTP客戶端工具
            apt-get install
            gftp


            LINUX下的“電驢”
            # aMule 是基于eMule的“全平臺”P2P客戶端
            apt-get install amule


            BT下載工具
            Transmission是一種BitTorrent客戶端
            apt-get install
            transmission

            posted @ 2012-05-28 18:07 多彩人生 閱讀(23641) | 評論 (0)編輯 收藏

            Ubuntu下Postgresql8.4安裝配置

            注意事項:由于wordpress會自動將半角單引號轉換為全角單引號,引用代碼時需要手動修改為單引號

            第一步:在Ubuntu下安裝Postgresql

            [代碼內容]
            root@ubuntuserver:~# sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4
            [代碼說明]
            安裝服務端和命令行客戶端psql。
            [功能說明]
            /usr/lib/postgresql/8.4/              存放postgresql相關的二進制文件
            /usr/lib/postgresql/8.4/bin/        可執行文件
            /usr/lib/postgresql/8.4/lib/         共享庫文件
            /etc/postgres/8.4/main/              存放postgresql配置文文件
            /var/lib/postgresql/                    postgres用戶的主文件夾

            第二步:修改PostgreSQL數據庫的默認用戶postgres的密碼(注意不是linux系統帳號)

            [代碼內容]
            root@ubuntuserver:~# sudo -u postgres psql
            postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’;
            postgres=# \q
            [代碼說明]
            ‘#’和’#’之前的字符是系統提示符,’postgres=#’是psql客戶端的提示符,紅色字符為輸入命令(本文其它部分亦如此);
            第一行:運行psql,psql是一個標準的postgressql客戶端,也可以使用”sudo su postgres -c psql”,效果是一樣的;
            第二行:修改postgres的密碼為postgres,不要忘記添加分號(回車后分號之前的sql語句才會立即執行)
            第三行:退出psql客戶端
            [功能說明]

            PostgreSQL數據默認會創建一個postgres的數據庫用戶作為數據庫的管理員,密碼是隨機的,我人需要修改為指定的密碼,這里設定為’postgres’。

            第三步:修改linux系統的postgres用戶的密碼(密碼與數據庫用戶postgres的密碼相同)

            [代碼內容]
            root@ubuntuserver:~# sudo passwd -d postgres
            root@ubuntuserver:~# sudo -u postgres passwd
            [代碼說明]
            第一行:刪除密碼
            第二行:創建密碼
            [功能說明]
            PostgreSQL數據默認會創建一個linux用戶postgres,通過上面的代碼修改密碼為’postgres’(這取決于第二步中的密碼,只要與其相同即可)。

            現在,我們就可以在數據庫服務器上用 postgres帳號通過psql或者pgAdmin等等客戶端操作數據庫了(暫時還不能遠程訪問)。
            第四步:修改PostgresSQL數據庫配置實現遠程訪問

            [代碼內容]
            root@ubuntuserver:~# sudo vi /etc/postgresql/8.4/main/postgresql.conf
            —>改變行:#listen_addresses = ‘localhost’
            —>修改為:listen_addresses = ‘*’
            —>改變行:#password_encryption = on
            —>修改為:password_encryption = on
            root@ubuntuserver:~# sudo vi /etc/postgresql/8.4/main/pg_hba.conf
            —>文件末添加行:# to allow your client visiting postgresql server
            —>文件末添加行:host all all 0.0.0.0 0.0.0.0 md5
            root@ubuntuserver:~# sudo /etc/init.d/postgresql-8.4 restart
            [代碼說明]
            第一行:修改postgresql.conf的目的是修改連接權限;
            第二行:修改pg_hba.conf的目的是設置誰才可以操作數據服務器;
            第三行:重啟postgresql數據庫的服務程序,以使上面的配置生效。
            詳細解釋一下”host all all 0.0.0.0 0.0.0.0 md5
            host表示允許的類型是主機;
            第一個all是允許的數據庫名字;
            第二個all是允許的用戶;
            第一個0.0.0.0是允許訪問的ip address;
            第二個0.0.0.0是允許訪問的subnet mask;
            最后的md5表示密碼的加密方式,如果將md5改成trust則可以讓指定范圍的主機數據庫的時候不需要提供密碼。
            關于ip address和subnet mask,你也可以修改為你的機器IP地址(如10.13.19.53)和子網掩碼(如 255.255.255.255),這樣就只有你自己的主機可以遠程訪問數據庫了。 如果要使用一個IP地址范圍,只需要把子網掩碼設置成合適的值,如果子網掩碼設置成0.0.0.0,則所有主機均可以訪問數據庫(IP可以任意設定),如 果將md5改成trust則可以讓指定范圍的主機訪問指定的數據庫的時候不需要提供密碼。
            [功能說明]
            實現遠程訪問

            第五步:創建用戶和數據庫

            [代碼內容]
            root@ubuntuserver:~# psql -U postgres -h 127.0.0.1
            postgres=# create user “IamJiwan” with password ‘IamJiwan’ nocreatedb;
            postgres=# create database “mydatabase” with owner=”IamJiwan”;
            [代碼說明]
            第一行:運行psql客戶端,并指定用戶為postgres主機為127.0.0.1,執行此行后需要輸入密碼’postgres’,如不指定則默認用戶為linux系統當前登錄用戶,默認數據庫服務器為本機;
            第二行:添加數據庫用戶“IamJiwan“;
            第三行:添加數據庫“mydatabase”并設定所有者為”IamJiwan”;
            用戶名和數據庫名稱加上引號后才區分大小寫,否則會自動轉換成小寫;
            雙引號作用:創建對象的時候,對象名、字段名加雙引號,則表示嚴格區分大小寫,否則都默認小寫;
            單引號作用:標識字符與數字的區別,并不區分大小寫。
            [功能說明]
            創建用戶和數據庫
            [備注內容]
            postgres還提供了命令行創建用戶和數據庫的方法:
            root@ubuntuserver:~# sudo -u postgres createuser -D -P mynewuser
            root@ubuntuserver:~# sudo -u postgres createdb -O mynewuser mydatabase
            第一行:-D該用戶沒有創建數據庫的權利,-P提示輸入密碼,后面的選項都可以省略,命令執行的時候會提示用戶選擇yes或者no
            第二行:-O設定所有者為mynewuser

            第六步:如何安裝和使用pgAdmin3客戶端操作postgresql數據庫

            [代碼內容]
            root@ubuntuserver:~# sudo apt-get install pgadmin3
            [功能說明]
            安裝圖形客戶端pgAdmin3

            posted @ 2012-05-26 16:30 多彩人生 閱讀(1304) | 評論 (0)編輯 收藏

            postgresql源碼安裝

            http://cuojuan.com/
            http://cuojuan.com/review/26


            使用的Linux發行版是ubuntu server 6.06,ubuntu 自帶版本最高只有8.1,為了嘗鮮,同時8.2.0已經對基于windows平臺的兼容性進行了改進,便于平臺的轉換。同時源碼安裝可以自己制定一些參數 和設置,ubuntu雖然有很好的易用性和兼容性,并且部分特性也較新,但是同window有些相像,減少也封閉了很多細節問題,讓開發人員沒有機會也不 用嘗試去理解一些程序的安裝過程和參數,對于程序開發來說,并不一定是件好事。

            一 安裝Postgresql8.2.0

            1. 下載源碼。
            到postgresq.org下載最新的源碼。

            2 解壓。
            tar -vxf postgresql*.tar.gz
            3 配置,進入解壓目錄后可以用./configure –help來查看可用的參數。我使用的是:

            # ./configure –prefix=/home/shaken/postgresql –without-readline –without-zlib

            前一個參數是把循照慣例把自己的軟件安裝到/opt目錄下,后面兩個參數是因為我的系統里沒有安裝readline和zlib,其實安裝一下就可以了。

            在ubuntu中這樣可以去掉后面的兩個–without參數:
            # apt-get install libreadline5-dev zlib1g-dev
            解決在ubuntu安裝postgresql時,configure出現的問題。

            4 編譯后并安裝:

            # make

            # make install

            5 增加Postgresql數據庫的最高用戶postgres并設置密碼:

            # adduser postgres
            # mkdir /home/shaken/postgresql/data
            # chown postgres /home/shaken/postgresql/data

            最好再這樣:
            # chown -R postgres /home/shaken/postgresql

            6 以用戶postgres登陸:

            # su – postgres

            7 初始化數據庫:
            $ /home/shaken/postgresql/bin/initdb -D /home/shaken/postgresql/data

            8 運行數據庫服務器:

            $ /home/shaken/postgresql/bin/postmaster -D /home/shaken/postgresql/data>logfile 2>&1 &

            9 創建一個數據庫:

            $ /home/shaken/postgresql/bin/createdb test

            10 在本機上運行客戶端進行管理:

            $ /home/shaken/postgresql/bin/psql test

            這就要求你對基礎的sql語法要熟悉了。

            到這里Postgresql就算安裝完成了。但是為了能遠程使用該數據庫—比如說我要在網絡上另外一臺Windows電腦上使用pgAdmin來管 理 使用該Postgresql服務器—則還需要進行一些修改,這些修改主要包括兩方面的修改,一是修改Postgresql的兩個配置文件,二是修改數 據庫的一些用戶權限:

            11 修改Postgresql的配置文件Postgresql.conf,該文件在數據目錄/home/shaken/postgresql/data下,將其中的一句:

            listen_address=’localhost’

            前面的注釋去掉,并把’localhost’該為’*’。

            12修改Postgresql的配置文件pg_hba.conf,該文件在數據目錄/home/shaken/postgresql/data下,在文件后面加一句:

            host   all all 192.168.0.0/24   password

            這句的意思是:同網絡中192.168.0.*的機器可以以密碼的形式使用所有的數據庫。更具體的參數意義直接看該配置文件中的注釋就可以了。

            這里一定要配置正確,否則無法在遠程連接postgresql數據庫。

            13 重新啟動postgresql服務器:

            $ /home/shaken/postgresql/bin/pg_ctl stop -D /home/shaken/postgresql/data

            停止原來的服務器

            $ $ /home/shaken/postgresql/bin/postmaster -i -D /home/shaken/postgresql/data >logfile 2>&1 &

            再次啟動,加一個-I參數

            14 一些數據庫用戶權限的簡單配置,以下是在psql中使用

            # create userwen1 password ‘123456’;

            創建一個用戶并設置密碼

            # createdatabase data1 owner wen1;

            創建一個數據庫

            # create tablewen11(name varcha(10))

            創建一個數據表

            # alter table wen11 owner to wen1;

            修改數據表的屬主。

            現在可以在局域網內的其他電腦使用其他postgresql客戶端工具,以用戶名wen1打開data1數據庫了。

            還需要改進的一些問題:

            1 中文支持的問題:使用encoding=’UTF-8’創建數據庫好不好?

            2 系統啟動時自動啟動postgresql的問題:完全可以參考Debian的相應啟動腳本。

            二 phppgadmin的安裝配置(可選的過程)

            為了管理配置我的數據庫服務器,對于我這樣的postgresql生手,需要一個方便的管理程序。這樣的管理工具很多,考慮自己以前使用mysql 有一個 便利的phpmyadmin,我選擇了phppgadmin。   phpPgAdmin是一個充分地功能基于互聯網的postgresql管理實用程序。它處理所有基本的功能并且某個先進的功能譬如觸發器, 視圖等,是一個基于B/S模式的管理軟件,必須安裝在服務器端。

            具體的安裝過程為:
            1 下載源碼,現在的最新版本為4.0.1
            # cd
            # wget http://……./phpPgAdmin-4.0.1.tar.gz
            2 解壓:
            # tar zxvf phpPgAdmin-4.0.1.tar.gz
            3 檢查系統是否已經安裝好apache+php以及php對postgresql的支持,如果沒有,以下為安裝:
            # apt-get install apache php4 php4-pgsql
            注意修改apache的配置文件以使apache支持php。
            4 使phpPgAdmin在客戶端可用,我一般是在apapche目錄下建立符號連接:
            # ln -s /root/phpPgAdmin-4.0.1 /var/www/pgadmin
            5 修改phpPgAdmin的配置文件 config/config.inc.php,其中必須要修改的參數有:
            $conf['servers'][0]['host']=’localhost’;
            標明數據庫服務器在本機
            $conf ['extra_security'] = false;
            允許使用postgres帳號登陸。
            6 在客戶端使用瀏覽器,輸入地址:
            http://……/pgadmin
            就可以進行postgresql數據庫的管理了。

            三 安裝postgis

            1 最好先安裝proj4和OGR,我偷懶沒有安裝,應該只是性能上打折扣吧,并不影響安裝使用。
            Debian下可以這樣:安裝postgis的時候,先:
            #apt-get install proj libgeos libgeos-dev

            2 下載源碼。

            3 解壓進入目錄。

            4 配置:

            # ./configure –prefix=/opt/postgis –with-pgsql=/home/shaken/postgresql/bin/pg_config

            意思很明顯

            5 編譯、安裝:

            # make

            # make install

            6 之后的一些工作:

            $ /home/shaken/postgresql/bin/createdb data1

            $ /home/shaken/postgresql/bin/createlang plpgsql data1

            $ /home/shaken/postgresql/bin/psql-d data1 -f lwpostgis.sql

            $ /home/shaken/postgresql/bin/psql-d data1 -f spatial_ref_sys.sql

            注意找到并進入包含后面那兩個sql文件的目錄再進去執行。

            下面可以使用postgis了,先試試Postgis提供那兩個轉換shape文件和postgis數據的小程序吧。

            四 PostGIS的初步使用

            網絡上關于PostGIS的使用的文章不多,而且說得不夠詳細,今天經過一番摸索,得到一些基本應用的經驗,希望能減少一些大家入門的周折。

            以下假設我要把一個test.shp文件(實際上完整的應包含三個文件)的數據導入到Postgresql數據庫data1中的test數據表,為 了安全 起見,數據庫Data1及相關的數據表的屬主都設置為wen1,然后在GIS客戶端如QGIS uDig等使用這個PostGIS數據。詳細的過程為;

            1 假設PostGreSQL數據庫服務器和PostGIS都安裝好。(見另文”源碼安裝Postgresql8.1.3+PostGIS1.1.2″)
            2 以數據庫的超級用戶postgres進入psql:
            # /home/shaken/postgresql/bin/psql         (注意路徑)
            以下的操作都是在psql控制臺。
            3 基本設置:
            # create user wen1 password ‘123456’;        創建一個用戶并設置密碼
            # create database data1 owner wen1;            創建一個數據庫
            # alter table spatial_ref_sys owner to wen1;
            # alter table geometry_columns owner to wen1 ; 這兩句修改兩個postgis相關的表的屬主為wen1,很重要,一般文章中似乎沒提到這兩點。
            4 數據轉換,以下工作退出psql,在shell界面進行。
            先把三個test.shp文件復制到/opt/postgis/bin目錄下并轉到該目錄下,注意路徑,注意目錄和文件的權限—也許退出postgres用戶到root用戶簡單一些。
            # /opt/postgis/bin/shp2pgsql test test data1 > test.sql
            # /home/shaken/postgresql/bin/psql -d data1 -f test.sql
            注意參數都要寫對,不明白的話一定要用–help參數查看。
            5 在客戶機器上打開QGIS,依次選擇”圖層”–>”添加PostGIS圖層”–>”新建”,然后設置好正確的服務器IP,數據庫名data1,用戶wen1及密碼,再點擊”連接”,然后下方會出現test圖層的名字,選擇就可以了。
            uDig的使用也大同小異。

            一點體會:
            1 要先弄懂PostgreSQL的使用,尤其是各種權限的概念和關系,這是一般從Windows下轉移來的人很缺乏的。
            2 最好選擇一個好的PostgreSQL客戶端工具來幫助調試,推薦使用PgAdmin。

            posted @ 2012-05-26 15:13 多彩人生 閱讀(1876) | 評論 (0)編輯 收藏

            使用proto 時犯的一個錯誤

            自己定義的 #define CMD_ID_SERVER  1000

            然后在proto文件里定義了
            enum CMD_ID
            {
                  CMD_ID_SERVER = 20000;
            }

            得到下面的錯誤
            Error    7    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int    e:\zc\test\doloio\package\hello\hello.pb.h    46
            Error    9    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int    e:\zc\test\doloio\package\hello\hello.pb.h    46
            Error    10    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int    e:\zc\test\doloio\package\hello\hello.pb.h    47
            Error    13    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int    e:\zc\test\doloio\package\hello\hello.pb.h    47
            Error    20    error C2447: '{' : missing function header (old-style formal list?)    e:\zc\test\doloio\package\hello\hello.pb.h    51
            Error    27    error C2447: '{' : missing function header (old-style formal list?)    e:\zc\test\doloio\package\hello\hello.pb.h    431
            Error    17    error C2440: 'initializing' : cannot convert from 'const int' to 'const std::string &'    e:\zc\test\doloio\package\hello\hello.pb.h    51
            。。。。。。。。。。

            ------------------------------------------
            其實根據錯誤信息應該很容易發現錯誤所在,但因為我心急,沒能靜下心來看錯誤信息以至浪費了更多的時間和精力于無謂的猜測試驗


            posted @ 2012-05-22 18:00 多彩人生 閱讀(869) | 評論 (1)編輯 收藏

            跨平臺開發連載(6_跨平臺IO的影響因素)

            http://blog.csdn.net/wqf363/article/details/1420554

            如果你正在寫從文件或網絡讀寫數據的跨平臺C/C++代碼,那么你必須明白有些問題是因語言,編譯器,平臺而不同的。 主要的問題是數據對齊,填充類型大小字節順序默認狀態char是否有符號
            對齊
            特定機器上,特定的數據被對齊于特定的邊界。如果數據沒有正確對齊,結果可能是效率降低甚至崩潰。 當你從I/O源讀取數據的時候,確保對齊是正確的。詳細內容參考本人另一篇blog: 字節對齊的影響因素
            填充
            "填充" 是數據集合中不同元素之間的間隔, 一般是為了對齊而存在。不同編譯器和平臺下,填充的數量可能會不同。 不要假設結構的大小和成員的位置在任何編譯器和平臺下都是相同的。 不要一次性讀取或者寫入一整個結構體,因為寫入的程序可能會使用和讀取的程序不同的填充方式。對于域也同樣適用。
            類型大小
            不同數據類型的大小隨編譯器和平臺而不同。 在C/C++中, 內置類型的大小完全取決于編譯器(在特定范圍內). 不要讀寫大小不明確的數據類型。也就是說,不要讀寫bool, enum, long, int, short, float, 或者double類型.(譯者注:linux下要使用下面跨平臺符號,要加載頭文件<arpa/inet.h>,此外在C99已經增加了一個頭文件stdint.h,支持標準的,可移植的整數類型集合,此文件被包含在<inttypes.h>)
            用這些
            替代這些...
            int8, uint8
            char, signed char, unsigned char, enum, bool
            int16, uint16
            short, signed short, unsigned short, enum
            int32, uint32
            int, signed int, unsigned int, long, signed long, unsigned long, enum
            int64, uint64
            long, signed long, unsigned long
            int128, uint128
            long long, signed long long, unsigned long long
            float32
            float
            float64
            double
             
            Data Type Ranges
            C/C++ recognizes the types shown in the table below.
            Type Name
            Bytes
            Other Names
            Range of Values
            int
            *
            signed,
            signed int
            System dependent
            unsigned int
            *
            unsigned
            System dependent
            __int8
            1
            char,
            signed char
            –128 to 127
            __int16
            2
            short,
            short int,
            signed short int
            –32,768 to 32,767
            __int32
            4
            signed,
            signed int
            –2,147,483,648 to 2,147,483,647
            __int64
            8
            none
            –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
            char
            1
            signed char
            –128 to 127
            unsigned char
            1
            none
            0 to 255
            short
            2
            short int,
            signed short int
            –32,768 to 32,767
            unsigned short
            2
            unsigned short int
            0 to 65,535
            long
            4
            long int,
            signed long int
            –2,147,483,648 to 2,147,483,647
            unsigned long
            4
            unsigned long int
            0 to 4,294,967,295
            enum
            *
            none
            Same as int
            float
            4
            none
            3.4E +/- 38 (7 digits)
            double
            8
            none
            1.7E +/- 308 (15 digits)
            long double
            10
            none
            1.2E +/- 4932 (19 digits)
             
                The long double data type (80-bit, 10-byte precision) is mapped directly to double (64-bit, 8- byte precision) in Windows NT and Windows 95.
                Signed and unsigned are modifiers that can be used with any integral type. The char type is signed by default, but you can specify /J to make it unsigned by default.
                The int and unsigned int types have the size of the system word. This is two bytes (the same as short and unsigned short) in MS-DOS and 16-bit versions of Windows, and 4 bytes in 32-bit operating systems. However, portable code should not depend on the size of int.
                Microsoft C/C++ also features support for sized integer types. See __int8, __int16, __int32, __int64 for more information. Also see Integer Limits.
                   此外,顯示個32位與64位平臺之間的差異示例:
            對于 Linux on POWERILP 32 模型用于 32 位環境中,而 LP64 用于 64 位環境中。這兩種模型之間的區別在于長整型和指針的大小。
            系統中可以有兩種不同的數據類型:基本數據類型和衍生數據類型。
            基本數據類型是 C C++ 語言規范定義的所有數據類型。下表對 Linux on POWER Solaris 中的基本數據類型進行了比較:
            4:基本數據類型
             
            Linux on POWER
            Solaris
            基本類型
            ILP32
            LP64
            ILP32
            LP64
            char
            8
            8
            8
            8
            short
            16
            16
            16
            16
            init
            32
            32
            32
            32
            float
            32
            32
            32
            32
            long
            32
            64
            32
            64
            pointer
            32
            64
            32
            64
            long long
            64
            64
            64
            64
            double
            64
            64
            64
            64
            long double
            64/128*
            64/128*
            128
            128
            5. 衍生數據類型
            OS
            gid_t
            mode_t
            pid_t
            uid_t
            wint_t
            Solaris ILP32 l
            long
            unsigned long
            long
            long
            long
            Solaris LP64
            int
            unsigned int
            int
            int
            int
            Linux ILP32
            unsigned int
            unsigned int
            int
            unsigned int
            unsigned int
            Linux ILP64
            unsigned int
            unsigned int
            int
            unsigned int
            unsigned int
             
            字節順序
            字節順序,就是字節在內存中存儲的順 序。 不同的處理器存儲多字節數據的順序是不同的。小端處理器由低到高存儲(換句話說,和書寫的順序相反).。大端處理器由高到低存儲(和書寫順序相同)。如果 數值的字節順序和讀寫它的處理器不同,它必須被事先轉化。同時,為了標準化網絡傳輸的字節順序,定義了網絡字節順序。詳細內容參考本人另一篇blog:  網絡通訊中字節排列順序轉化
            char - 有符號還是無符號?
            一個鮮為人知的事實,char默認可以是有符號的也可以是無符號的-完全取決于編譯器。結果導致你從char轉化為其他類型的時候(比如int),結果會因編譯器而不同。 例如:

            char   x;
            int    y;
            read( fd, &x, 1 );   // 讀取一個byte值為0xff
            y = x;               // y 是 255 或者 -1, 依賴編譯器

            不要把數據讀入一般的char。明確指定是有符號或者無符號的

            posted @ 2012-05-19 09:51 多彩人生 閱讀(446) | 評論 (0)編輯 收藏

            指令關鍵字volatile

            就象大家更熟悉的const一樣,volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修改的變量。如果沒有volatile,基本上會導致這樣的結果:要么無法編寫多線程程序,要么編譯器失去大量優化的機會。

            見百度百科
            http://baike.baidu.com/view/608706.htm

            posted @ 2012-05-18 11:31 多彩人生 閱讀(228) | 評論 (0)編輯 收藏

            LocalAlloc,VirtualAlloc,malloc,new的異同

               首先明白幾個概念:虛擬內存是從硬盤置換出來的,堆本身就是內存,程序運行時,可用內存=物理內存+虛擬內存。虛擬內存一般用文件來保存數據,虛擬內存的 出現主要是因為以前內存不夠(16M的內存剛出來的時候可是天價啊),磁盤相對便宜一些,所以聰明的系統設計者就把設計了虛擬內存,在程序運行的時候把那 些很久沒有被訪問過的(可能以后也不會用到)內存映射到文件里面去(以后需要的時候再讀進內存),把內存騰出來給真正需要執行的代碼和數據,這樣看起來可 用內存就比物理內存多了。
                   HeapAlloc()是堆分配內存函數,查看c,c++的malloc,new函數的代碼,可以看到就是對HeapAlloc()函數的封裝,在堆上可以動態分配內存。
            1. 首先我們來看HeapAlloc:
            MSDN 上的解釋為:HeapALloc是從堆上分配一塊內存,且分配的內存是不可移動的(即如果沒有連續的空間能滿足分配的大小,程序不能將其他零散的 空間利用起來,從而導致分配失敗),該分配方法是從一指定地址開始分配,而不像GloabalAlloc是從全局堆上分配,這個有可能是全局,也有可能是 局部。函數原型為:
            LPVOID
            HeapAlloc(
                HANDLE hHeap,
                DWORD dwFlags,
               SIZE_T dwBytes
                );
            hHeap是進程堆內存開始位置。
            dwFlags是分配堆內存的標志。包括HEAP_ZERO_MEMORY,即使分配的空間清零。
            dwBytes是分配堆內存的大小。
            其對應的釋放空間函數為HeapFree。
            2. 再看GlobalAlloc:該函數用于從全局堆中分配出內存供程序使用,函數原型為:
            HGLOBAL GlobalAlloc(
            UINT uFlags,
            SIZE_T dwBytes
            );
            uFlags參數含義
            GHND   GMEM_MOVEABLE和GMEM_ZEROINIT的組合
            GMEM_FIXED   分配固定內存,返回值是一個指針
            GMEM_MOVEABLE   分配活動內存,在Win32中,內存塊不能在物理內存中移動,但能在默認的堆中移動。返回值是內存對象的句柄,用函數GlobalLock可將句柄轉化為指針
            GMEM_ZEROINIT   將內存內容初始化為零
            GPTR   GMEM_FIXED和GMEM_ZEROINIT的組合
            一 般情況下我們在編程的時候,給應用程序分配的內存都是可以移動的或者是可以丟棄的,這樣能使有限的內存資源充分利用,所以,在某一個時候我們分配的那塊 內存的地址是不確定的,因為他是可以移動的,所以得先鎖定那塊內存塊,這兒應用程序需要調用API函數GlobalLock函數來鎖定句柄。如下: lpMem=GlobalLock(hMem); 這樣應用程序才能存取這塊內存。所以我們在使用GlobalAllock時,通常搭配使用GlobalLock,當然在不使用內存時,一定記得使用 GlobalUnlock,否則被鎖定的內存塊一直不能被其他變量使用。
            GlobalAlloc對應的釋放空間的函數為GlobalFree。
            3. LocalAlloc:該函數用于從局部堆中分配內存供程序使用,函數原型為:
            HLOCAL LocalAlloc(
            UINT uFlags,
            SIZE_T uBytes
            );
            參數同GlobalAlloc。
            在 16位Windows中是有區別的,因為在16位windows用一個全局堆和局部堆來管理內存,每一個應用程序或dll裝入內存時,代碼段被裝入全局 堆,而系統又為每個實例從全局堆中分配了一個64kb的數據段作為該實例的局部堆,用來存放應用程序的堆棧和所有全局或靜態變量。而 LocalAlloc/GlobalAlloc就是分別用于在局部堆或全局堆中分配內存。
            由于每個進程的局部堆很小,所以在局部堆中分配內存會受到空間的限制。但這個堆是每個進程私有的,相對而言分配數據較安全,數據訪問出錯不至于影響到整個系統。
            而在全局堆中分配的內存是為各個進程共享的,每個進程只要擁有這個內存塊的句柄都可以訪問這塊內存,但是每個全局內存空間需要額外的內存開銷,造成分配浪費。而且一旦發生嚴重錯誤,可能會影響到整個系統的穩定。
            不 過在Win32中,每個進程都只擁有一個省缺的私有堆,它只能被當前進程訪問。應用程序也不可能直接訪問系統內存。所以在Win32中全局堆和局部堆都 指向進程的省缺堆。用LocalAlloc/GlobalAlloc分配內存沒有任何區別。甚至LocalAlloc分配的內存可以被 GlobalFree釋放掉。所以在Win32下編程,無需注意Local和Global的區別,一般的內存分配都等效于 HeapAlloc(GetProcessHeap(),...)。
            LocalAlloc對應的釋放函數為LockFree。
            4. VirtualAlloc:該函數的功能是在調用進程的虛地址空間,預定或者提交一部分頁,如果用于內存分配的話,并且分配類型未指定MEM_RESET,則系統將自動設置為0;其函數原型:
            LPVOID VirtualAlloc(
            LPVOID lpAddress, // region to reserve or commit
            SIZE_T dwSize, // size of region
            DWORD flAllocationType, // type of allocation
            DWORD flProtect // type of access protection
            );
            VirtualAlloc 可以通過并行多次調用提交一個區域的部分或全部來保留一個大的內存區域。多重調用提交同一塊區域不會引起失敗。這使得一個應用程 序保留內存后可以隨意提交將被寫的頁。當這種方式不在有效的時候,它會釋放應用程序通過檢測被保留頁的狀態看它是否在提交調用之前已經被提交。
            VirtualAlloc對應的釋放函數為VirtualFree。
            5.Malloc:malloc 與free是C++/C語言的標準庫函數,可用于申請動態內存和釋放內存。對于非內部數據類型的對象而言,光用 malloc/free無法滿足動態對象的要求。對象在創建的同時要自動執行構造函數,對象在消亡之前要自動執行析構函數。由于malloc/free是 庫函數而不是運算符,不在編譯器控制權限之內,不能夠把執行構造函數和析構函數的任務強加于malloc/free。
            6.New:new/delete 是C++的運算符。可用于申請動態內存和釋放內存。C++語言需要一個能完成動態內存分配和初始化工作的運算符new, 以一個能完成清理與釋放內存工作的運算符delete。注意new/delete不是庫函數。C++程序經常要調用C函數,而C程序只能用malloc /free管理動態內存。new 是個操作符,和什么"+","-","="...有一樣的地位.
                    malloc是個分配內存的函數,供你調用的.
                    new是保留字,不需要頭文件支持.
                    malloc需要頭文件庫函數支持.new 建立的是一個對象,
                    malloc分配的是一塊內存.
                    new建立的對象你可以把它當成一個普通的對象,用成員函數訪問,不要直接訪問它的地址空間
                    malloc分配的是一塊內存區域,就用指針訪問好了,而且還可以在里面移動指針.
            內存泄漏對于malloc或者new都可以檢查出來的,區別在于new可以指明是那個文件的那一行,而malloc沒有這些信息。new可以認為是malloc加構造函數的執行。new出來的指針是直接帶類型信息的。而malloc返回的都是void指針。

            posted @ 2012-05-18 10:29 多彩人生 閱讀(497) | 評論 (0)編輯 收藏

            Stopwatch類

            提供一組方法和屬性,可用于準確地測量運行時間。

            posted @ 2012-05-17 14:18 多彩人生 閱讀(382) | 評論 (0)編輯 收藏

            僅列出標題
            共25頁: First 13 14 15 16 17 18 19 20 21 Last 

            導航

            統計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久99精品免费一区二区| 精产国品久久一二三产区区别| 国产精品久久久久aaaa| 999久久久免费精品国产| 久久久久久精品免费免费自慰| 久久久久久亚洲精品无码| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 精品久久久久久无码中文字幕| 久久av无码专区亚洲av桃花岛| 久久精品国产亚洲av日韩| 久久精品国产亚洲av麻豆图片| 国产精品久久久久久久久久影院| 久久狠狠色狠狠色综合| 久久人人青草97香蕉| 久久国产精品成人免费| 一级做a爰片久久毛片人呢| 久久精品国产亚洲av麻豆蜜芽 | 久久国产影院| 青青热久久国产久精品 | 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 久久精品国产亚洲av麻豆图片| 中文字幕乱码人妻无码久久 | 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 18岁日韩内射颜射午夜久久成人| 国产91久久综合| 97精品久久天干天天天按摩| 久久国产精品-国产精品| 久久亚洲国产精品123区| 国产精品成人久久久久久久| 精品久久国产一区二区三区香蕉 | 一本大道久久东京热无码AV| 亚洲欧美伊人久久综合一区二区| 久久久久亚洲AV无码专区网站| 四虎亚洲国产成人久久精品| 日本欧美久久久久免费播放网| 国产精品成人无码久久久久久| 亚洲av伊人久久综合密臀性色| 99久久亚洲综合精品成人| 亚洲国产精品久久电影欧美| 久久er国产精品免费观看2| 久久久国产打桩机|