第一步:在Ubuntu下安装Postgresql服务器端和客户端
bzl@bzl:~$ sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4
安装后文档位置说明
/usr/lib/postgresql/8.4/ 存放postgresql相关的二进制文件
/usr/lib/postgresql/8.4/bin/ 可执行文件
/usr/lib/postgresql/8.4/lib/ 共享库文件
/etc/postgres/8.4/main/ 存放postgresql配置文文件
/var/lib/postgresql/ postgres用户的主文件夹
第二步:修改PostgreSQL数据库的默认用户postgres的密码(注意不是linux系统帐号)
bzl@bzl:~$ sudo -u postgres psql
postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’;
postgres=# \q
注:
1、‘#’和’#'之前的字符是系统提示符,’postgres=#’是psql客户端的提示符。Sudo -u postgres psql也可以使用:sudo su postgres -c psql
2、ALTER USER postgrs WITH PASSWORD ‘postgres’是标准的SQL语句,因此不要忘记添加“;”
3、“\q”退出
修改密码说明:
PostgreSQL默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,所以我们要修改为自己的密码,这里修改为’postgres’。而且postgres用户的密码和数据库用户的密码是一致的。
其他操作:
删除密码:
bzl@bzl:~$ sudo passwd -d postgres
创建密码:
bzl@bzl:~$ sudo -u postgres passwd
第三步:安装可视化客户端
bzl@bzl:~$ sudo apt-get install pgAdmin3
第四步:修改PostgresSQL数据库配置实现远程访问
bzl@bzl:~$ sudo vi /etc/postgresql/8.4/main/postgresql.conf
—>改变行:#listen_addresses = ‘localhost’
—>修改为:listen_addresses = ‘*’
—>改变行:#password_encryption = on
—>修改为:password_encryption = on
bzl@bzl:~$ sudo vi /etc/postgresql/8.4/main/pg_hba.conf
—>文件末添加行:# to allow your client visiting postgresql server
—>文件末添加行:host all all 0.0.0.0 0.0.0.0 md5
bzl@bzl:~$ sudo /etc/init.d/postgresql-8.4 restart
第一行:修改postgresql.conf的目的是修改连接权限;
第二行:修改pg_hba.conf的目的是设置谁才可以操作数据服务器;
第三行:重启postgresql数据库的服务程序,以使上面的配置生效。
详细解释一下”host all all 0.0.0.0 0.0.0.0 md5“:
host表示允许的类型是主机;
第一个all是允许的数据库名字;
第二个all是允许的用户;
第一个0.0.0.0是允许访问的ip address;
第二个0.0.0.0是允许访问的subnet mask;
最后的md5表示密码的加密方式,如果将md5改成trust则可以让指定范围的主机数据库的时候不需要提供密码。
关于ip address和subnet mask,你也可以修改为你的机器IP地址(如10.13.19.53)和子网掩码(如255.255.255.255),这样就只有你自己的主机可以远程访问数据库了。 如果要使用一个IP地址范围,只需要把子网掩码设置成合适的值,如果子网掩码设置成0.0.0.0,则所有主机均可以访问数据库(IP可以任意设定),如 果将md5改成trust则可以让指定范围的主机访问指定的数据库的时候不需要提供密码。
远程访问
第五步:远程访问
创建用户和数据库
bzl@bzl:~$ psql -U postgres -h 127.0.0.1
postgres=# create user “test” with password ‘test’ nocreatedb;
postgres=# create database “mydatabase” with owner=”test”;
[代码说明]
第一行:运行psql客户端,并指定用户为postgres主机为127.0.0.1,执行此行后需要输入密码’postgres’,如不指定则默认用户为linux系统当前登录用户,默认数据库服务器为本机;
第二行:添加数据库用户“test“;
第三行:添加数据库“mydatabase”并设定所有者为”test”;
用户名和数据库名称加上引号后才区分大小写,否则会自动转换成小写;
双引号作用:创建对象的时候,对象名、字段名加双引号,则表示严格区分大小写,否则都默认小写;
单引号作用:标识字符与数字的区别,并不区分大小写。
[功能说明]
创建用户和数据库
[备注内容]
postgres还提供了命令行创建用户和数据库的方法:
bzl@bzl:~$ sudo -u postgres createuser -D -P mynewuser
bzl@bzl:~$ sudo -u postgres createdb -O mynewuser mydatabase
第一行:-D该用户没有创建数据库的权利,-P提示输入密码,后面的选项都可以省略,命令执行的时候会提示用户选择yes或者no
第二行:-O设定所有者为mynewuser