中国官方的使用文档:http://doc.zzbaike.com/postgresql/8-1/pgsqldoc-cvs/tutorial-createdb.html
网友的经验如下文所示:http://blog.sina.com.cn/s/blog_55f710ae01009lgk.html
1.需要启动postgre
sql服务:service postgre
sql start。这时可能需要sudo权限
2、initdb -D /usr/lib/pg
sql/data 创建
数据库集群(用
文件系统的术语来说,
一个数据库集群将是
一个目录,所有数据都将存放
在这个目录中。)
本机的目录保存在下面:/home/wxd/pg
sql
然后切换成操作数据库的超级用户:su postgres
3.进入数据库的方法是:psql <dbname>
改
密码: Linux下, user$ sudo passwd postgres 输入新的UNIX
密码: 请再次输入一遍:
密码成功更改! user$ (用
文件系统的术语来说,
一个数据库集群将是
一个目录,所有数据都将存放
在这个目录中。) 运行结果如下: 警告: 为本地连接启动了 "trust" 认证. 你可以通过编辑 pg_hba.conf 更改或你下 次运行 initdb 时使用 -A 选项. Success. You can
Now start the database server using: postmaster -D data or pg_ctl -D data -l logfile start 3、用postgres超级
用户登陆,
添加post
sql的role权限:
createuser post
sql 4、如果不是使用post
sql用户登陆的,或者在其他机器登陆的
用户,可以ssh到这台机器上: ssh post
sql@ip 5、执行 createdb my_test 新建my_test
数据库 6、p
sql my_test,进入该
数据库 7、create table my_f
irst_table ( my_test(# name text,my_test(# id integer my_test(# ) my_test-# ;
添加新表。之后可以使用\d来查看当前
数据库的表,\d tablename来查看表结构。 8、简单的存储过程例子: f
irst_empress=# CREATE FUNCTION insert_tag(text) returns bool as ' f
irst_empress'# DECLARE f
irst_empress'# tag alias for $1; f
irst_empress'# BEGIN f
irst_empress'# insert into tags (title) values (tag); f
irst_empress'# return true; f
irst_empress'# end; f
irst_empress'# ' f
irst_empress-# language plpg
sql; 9、远程登陆postgre
sql: 开始的时候data/pg_hba.conf下的配置为: # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust data/postgre
sql.conf下的配置为: #listen_addresses = 'localhost' # what IP address(es) to listen on; 我远程连接的时候 p
sql -h server-ip -U post
sql test -W,总是连接出错: p
sql:
Could not connect to server: 连接超时 Is the server running on host "10.129.62.97" and accepting
TCP/IP connections on port 5432? 而我本机使用使用post
sql用户,p
sql test的时候是可以连接上去的。 尝试在本机使用p
sql -h server-ip -U post
sql test -W也出错: p
sql: 致命
错误: 没有用于主机 "10.129.62.97",
用户 "post
sql",
数据库 "test",SSL
关闭 的 pg_hba.conf 记录 这时,在pg_hda中
添加了了: # IPv4 local connections: host all all 10.129.62.97/32 trust 并在postgre
sql.conf中
添加了 #listen_addresses = 'localhost' # what IP address(es) to listen on; listen_addresses = '*' # what IP address(es) to listen on; port = 5432 重新加载: pg_ctl -D /usr/lib/pg
sql/data reload 再次使用p
sql -h server-ip -U post
sql test -W连接正确。 再次在远程尝试连接,依旧有问题。尝试ping该server,ping不通。 考虑到我的server是作为虚拟机安装在windows下的,可能是由于windows的原因? 但是使用echo 0 /proc/sys/net/ipv4/icmp_echo_ig
nore_all打开server的ping服务,并将windows防火墙的ICMP设置中的“允许传入回显请求”打开,ping该windows也ping不通,ping server也不通。但是用server ping该windows可以ping成功。 10、可以将存储过程写在文本
文件中aaa.
sql,然后在p
sql状态下,\i aaa.
sql导入。 \df查看所有存储过程(
函数) \df+ name 查看某一存储过程
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。