Ubuntu安装、使用postgresql数据库
$ sudo apt-get install postgresql (端口为5432)
$ sudo apt-get install postgresql-contrib (这个主要是为了生成oid2name)
$ sudo passwd postgres (postgres账号的家目录为:/var/lib/postgresql)
安装postgres图形化客户端
$ sudo apt-get install pgadmin3 (调用直接在命令行里输入pgadmin3即可)
postgres的主要配置文件
/etc/postgresql/9.1/main/下的pg_hba.conf(连接数据库的身份验证方式)和postgresql.conf(数据库的
配置文件) (建议修改前都备份下)
postgresql的bin命令路径:
/usr/lib/postgresql/9.1/bin
默认不写绝对路径无法调用,可做下软链接:
# ln -s /usr/lib/postgresql/9.1/bin/* /usr/bin/ (有些本来就有,无所谓的)
# mkdir -p /home/postgresql/data (也可不调,默认路径为:/var/lib/postgresql/9.1/main/base)
# chown postgres:postgres /home/postgresql/data
# su postgres
$ initdb -D /home/postgresql/data
数据库存放路径:/home/postgresql/data/base (这里显示的是数据库名的OID)
如要查看OID对应的数据库名,在base目录下执行oid2name即可
开启postgresql log
# vi /home/postgresql/data/postgres.conf (log部分默认均为注释)
按a或i进入编辑模式
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log' (绝对路径为:/var/lib/postgresql/9.1/main/)
log_filename = 'postgresql-%y-%m-%d_%H%M%S.log'
log_rotation_size = 10MB
按Esc键退出编辑模式
:wq (保存并退出)
允许从其它主机进行登录:
# vi /home/postgresql/data/pg_hba.conf
按a或i进入编辑模式
host all all 10.0.0.3/32 md5 (md5为需要密码,trust为不需要密码)
按Esc键退出编辑模式
:wq (保存并退出)
其它主机登录:
# psql -h 10.0.0.2 -p 5432 mingdb ming
启动、关闭postgresql
# service postgresql restart (-D的方法启动的话就只能杀进程了)
$ postgres -D /home/postgresql/data (关闭可用kill)
或
$ pg_ctl -D /home/postgresql/data start (关闭是stop)
注:启动后如需做其他操作建议另外打开个窗口(如ctrl+z的话会造成psql无法登陆)
在postgres账号命令行下操作步骤如下:
创建账号
$ createuser -A -D -P -R user1
密码
创建账号方法2:
$ createuser user1 with password '****'
修改账号密码命令:
$ alter user1 password 'xxxx'
删除账号:
$ dropuser user1
注:
-A 不允许创建其他用户
-D 不允许创建数据库
-P 创建密码
-R 不允许创建角色
创建数据库ming
$ createdb ming
删除数据库ming
$ dropdb ming
进入数据库ming
$ psql ming
进入后界面如下
ming=#
在数据库下操作步骤如下:
$ psql -U postgres (在postgres账号下可直接psql)
为postgres账号设置密码(注意区分系统账号postgres和数据库里postgres账号):
postgres=# \password postgres
密码
创建账号
postgres=# create user "ming" with password '123456' nocreatedb;
建立数据库并指定owner
postgres=# create database "mingdb" with owner="ming";
\l:列出已有数据库的Owner,Encoding等信息
\c 数据库名:切换数据库
\d:查看当前数据库中已有的表
\d 表名:查看表结构
\du:列出所有用户
\q:退出
查看数据表内容(同mysql):
select * from aa;