Django and PostgreSQL8.4 設定筆記
Django 1.3
PostgreSQL 8.4
OS:Debian
因為種種原因,從mySQL轉為使用PostgreSQL。
但是因為PostgreSQL和mySQL的用法有些不一樣,所以在設定的過程中吃了些苦頭,在這邊做過筆記...
=============
一、安裝套件:
=============
除了用apt-get安裝了PostgreSQL套件之外,記得Django 的manual之中有交代要再裝psycopg2套件。
$>sudo apt-get install python-psycopg2
==========================
二、PostgreSQL增加使用者和資料庫:
==========================
PostgreSQL裝好之後,會在資料庫和你的系統裡面增加一名使用者 postgres。
所以一開始要先幫postgres設定新的password:
$>sudo passwd postgres
然後切換使用者變成postgres再進入一個名叫 "postgres" 的資料庫。
$>sudo su postgres
$>psql postgres <== 這裡的 postgres 是資料庫名稱
postgres=# <== 成功進入postgreSQL的話會變成這樣的提示符號,這裡的postgres是資料庫名稱。
先設定一下密碼:
postgres=# ALTER USER postgres WITH PASSWORD '密碼';
然後增加Django裡面要用的使用者帳號和設定密碼:
postgres=# CREATE USER 使用者帳號;
postgres=# ALTER USER 使用者帳號 WITH PASSWORD '密碼';
然後增加Django裡面要用的資料庫:
postgres=# CREATE DATABASE 資料庫名稱 OWNER 使用者名稱;
如果要看資料庫有沒有建成功的話可以用 \l (小寫的L) 這個指令來看:
postgres=# \l
退出資料庫:
postgres=# \q
===================
設定 Django 的 setting.py
===================
修改成下列的內容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '資料庫名稱',
'USER': '使用者帳號',
'PASSWORD': '密碼',
'HOST': '',
'PORT': '',
}
}
之後同步資料庫:
$>python manage.py syncdb
然後按照之前的方式開啟django的admin功能,登入...就會看到不想看到的錯誤訊息像是下面這樣:
Ident驗證使用者 "XXXXX" 失敗
我就是卡在這裡被卡了很久,最後是去更改
/etc/postgresql/8.4/main/pg_hba.conf
PostgreSQL 8.4
OS:Debian
因為種種原因,從mySQL轉為使用PostgreSQL。
但是因為PostgreSQL和mySQL的用法有些不一樣,所以在設定的過程中吃了些苦頭,在這邊做過筆記...
=============
一、安裝套件:
=============
除了用apt-get安裝了PostgreSQL套件之外,記得Django 的manual之中有交代要再裝psycopg2套件。
$>sudo apt-get install python-psycopg2
==========================
二、PostgreSQL增加使用者和資料庫:
==========================
PostgreSQL裝好之後,會在資料庫和你的系統裡面增加一名使用者 postgres。
所以一開始要先幫postgres設定新的password:
$>sudo passwd postgres
然後切換使用者變成postgres再進入一個名叫 "postgres" 的資料庫。
$>sudo su postgres
$>psql postgres <== 這裡的 postgres 是資料庫名稱
postgres=# <== 成功進入postgreSQL的話會變成這樣的提示符號,這裡的postgres是資料庫名稱。
先設定一下密碼:
postgres=# ALTER USER postgres WITH PASSWORD '密碼';
然後增加Django裡面要用的使用者帳號和設定密碼:
postgres=# CREATE USER 使用者帳號;
postgres=# ALTER USER 使用者帳號 WITH PASSWORD '密碼';
然後增加Django裡面要用的資料庫:
postgres=# CREATE DATABASE 資料庫名稱 OWNER 使用者名稱;
如果要看資料庫有沒有建成功的話可以用 \l (小寫的L) 這個指令來看:
postgres=# \l
退出資料庫:
postgres=# \q
===================
設定 Django 的 setting.py
===================
修改成下列的內容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '資料庫名稱',
'USER': '使用者帳號',
'PASSWORD': '密碼',
'HOST': '',
'PORT': '',
}
}
$>python manage.py syncdb
然後按照之前的方式開啟django的admin功能,登入...就會看到不想看到的錯誤訊息像是下面這樣:
Ident驗證使用者 "XXXXX" 失敗
我就是卡在這裡被卡了很久,最後是去更改
/etc/postgresql/8.4/main/pg_hba.conf
這個檔的內容變成:
(如果系統不支援ipv6的話,最好把最後一行去掉)
local all all trust
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
然後重新啓動postgresql。
$>sudo /etc/init.d/postgresql restart
如果沒有看到錯誤訊息的話,就表示這個pg_hba.conf檔這樣的設定是ok的。
(如果出現錯誤訊息的話...我也不知道怎麼辦...)
(如果系統不支援ipv6的話,最好把最後一行去掉)
local all all trust
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
然後重新啓動postgresql。
$>sudo /etc/init.d/postgresql restart
如果沒有看到錯誤訊息的話,就表示這個pg_hba.conf檔這樣的設定是ok的。
(如果出現錯誤訊息的話...我也不知道怎麼辦...)
留言
張貼留言