2019独角兽企业重金招聘Python工程师标准>>>
在网上找了不少博客,结果还是一大坨的坑要我踩,踩完之后总结一下下吧!(适合初学者)
环境及资源
Linux版本:ubuntu16.04
PostgresSQL版本:postgresql-10.3
PostgreSQL官网下载地址:https://www.postgresql.org/ftp/source/v10.3/
直接下载postgresql-10.3.tar.gz
接下来是重点
一、准备工作
建议切换到root权限下进行postgresql数据库安装操作。默认系统或者虚拟机安装完成之后并不知道root用户的密码,那么如何应用root权限呢?
我们首先要重设置root用户的密码:sudo passwd root
之后就可以自由的切换到root用户了:su
输入root用户的密码即可。
数据库安装路径为:/usr/local/pgsql/
操作步骤:
- mkdir /usr/local/pgsql/
- 将下载的安装包上传到ubuntu(安装虚拟机的可以直接拖到桌面)
- 将安装包复制到我们要安装的目录下:cp /home/odoo/postgresql-10.3.tar.gz /usr/local/pgsql/(我的安装包放在了/home/odoo/目录下)
- 解压 安装包:
gunzip postgresql-10.3.tar.gz
tar xf postgresql-10.3.tar
二、安装
- 进入安装目录:cd /usr/local/pgsql/postgresql-10.3
- 查看当前环境是否支持安装,执行: ./configure
发现需要安装依赖:
checking for library containing readline... no
configure: error: readline library not found
解决:apt-get install libreadline-dev
继续执行: ./configure,发现:checking for inflate in -lz... no
configure: error: zlib library not found解决:apt-get install zlib1g
apt-get install zlib1g.dev
继续执行: ./configure ,至此,终于不再缺少依赖,第二步完成了。 - 执行: make
- 安装postgresql,执行: make install
数据库安装完成:PostgreSQL installation complete. - 添加postgres 用户,执行: adduser postgres
- 创建数据库文件夹,执行:mkdir /usr/local/pgsql/data
- 设置data夹属性:chown postgres /usr/local/pgsql/data
三、启动数据库
-
切换到postgres用户 : su - postgres
-
初始化数据库(这里一定要切换到postgres用户):/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
-
启动数据库:/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data/
停止数据库:/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data/
重启数据库:/usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data/ -
设置日志输入位置:
(1)切换到root用户:su
(2)设置日志输入位置:/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
(3)切换到postgres用户 :su - postgres
四、创建数据库及用户
进入/usr/local/pgsql/bin/目录:cd /usr/local/pgsql/bin/
- 创建数据库,执行: ./createdb dbname(数据库名字)
- 创建dbuser用户,执行 ./createuser -P dbuser (用户名)
五、访问数据库
- 执行: ./psql
- 退出: ctrl + d
访问数据库后也可以用sql命令来新建用户
create user dbuser with password 'xxx';
六、远程访问数据库
需设置两个配置文件
- 修改配置文件postgresql.conf
vim /usr/local/pgsql/data/postgresql.conf
找到监听地址和端口(如下两行代码):
#listen_addresses='localhost'
#port = 5432
listen_address 和 port 默认是被注释的,均要取消注释,修改如下图: - 修改配置文件/pgsql/data/pg_hba.conf:
vim /usr/local/pgsql/data/pg_hba.conf
添加一条IP授权记录,可以对一个网段授权
# IPv4 myhost connections:
host all all 0.0.0.0/0 trust
修改完成后重启数据库:/usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data/