一、下载postgresql
1.在线下载
apt-get install postgresql
2.离线下载安装包14.5
tar -zxvf postgresql-14.5.tar.gz
二、安装postgresql
①
./configure
make && make install
可能出现的问题:
问题一:
configure: error: readline library not found
解决办法:
在线安装:
apt-get install libncurses-dev libreadline-dev
离线安装:
http://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libncurses-dev_6.2-0ubuntu2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/r/readline/libreadline-dev_8.0-4_amd64.deb
dpkg -i ...
②安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装
cd contrib
make && make install
③执行如下命令操作
# root 用户不能启动postgresql 所以创建一个普通用户来启动和管理
useradd -m postgres
# 创建数据库位置目录
mkdir /var/www/html/django/postgresql
# 创建日志存储目录
mkdir /var/log/postgresql
# 赋权数据库安装位置给postgres用户
chown -R postgres:postgres /usr/local/pgsql
chown -R postgres:postgres /var/www/html/django/postgresql /var/log/postgresql
chomd -R 775 /var/www/html/django/postgresql /var/log/postgresql
# 切换用户
su - postgres
# 编辑变量
vim ~/.profile
# 将如下内容追加写入
export PGHOME=/usr/local/pgsql
export PGDATA=/var/www/html/django/postgresql
export PGHOST=localhost
export PATH="$HOME/bin:$HOME/.local/bin:$PATH:$PGHOME/bin"
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
# 初始化数据库
initdb -D /var/www/html/django/postgresql
# 启动数据库
pg_ctl -D /var/www/html/django/postgresql -l /var/log/postgresql/logfile start
# 进入数据库
psql
# 创建用户
create user root with login password 'djroot';
# 创建数据库
create database ug_sys_db owner root;
# 退出数据库
\q
三、安装其他软件
安装libpq5、post-client-common、postgresql-client、python3-psycopg2、libpq-dev
在线:
apt-get update
apt-get install postgresql-client
apt-get install python3-psycopg2
apt-get install libpq-dev
离线:
http://archive.ubuntu.com/ubuntu/pool/main/p/postgresql-common/postgresql-client-common_214_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/p/psycopg2/python3-psycopg2_2.8.4-2_amd64.deb
安装psycopg2
在线:
pip3 install psycopg2
离线:
python setup.py install
四、配置django
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'ug_sys_db',
'USER': 'root',
'PASSWORD': 'djroot',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}