第一步:在Ubuntu下安装Postgresql
[代码内容]
root@ubuntuserver:~# sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4
[代码说明]
安装服务端和命令行客户端psql。
[功能说明]
/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系统帐号)
[代码内容]
root@ubuntuserver:~# sudo -u postgres psql
postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’;
postgres=# \q
[代码说明]
‘#’和’#'之前的字符是系统提示符,’postgres=#’是psql客户端的提示符,红色字符为输入命令(本文其它部分亦如此);
第一行:运行psql,psql是一个标准的postgressql客户端,也可以使用”sudo su postgres -c psql”,效果是一样的;
第二行:修改postgres的密码为postgres,不要忘记添加分号(回车后分号之前的sql语句才会立即执行)
第三行:退出psql客户端
[功能说明]
PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,我人需要修改为指定的密码,这里设定为’postgres’。
第三步:修改linux系统的postgres用户的密码(密码与数据库用户postgres的密码相同)
[代码内容]
root@ubuntuserver:~# sudo passwd -d postgres
root@ubuntuserver:~# sudo -u postgres passwd
[代码说明]
第一行:删除密码
第二行:创建密码
[功能说明]
PostgreSQL数据默认会创建一个linux用户postgres,通过上面的代码修改密码为’postgres’(这取决于第二步中的密码,只要与其相同即可)。
[代码内容]
root@ubuntuserver:~# sudo vi /etc/postgresql/8.4/main/postgresql.conf
—>改变行:#listen_addresses = ‘localhost’
—>修改为:listen_addresses = ‘*’
—>改变行:#password_encryption = on
—>修改为:password_encryption = on
root@ubuntuserver:~# 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
root@ubuntuserver:~# 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则可以让指定范围的主机访问指定的数据库的时候不需要提供密码。
[功能说明]
实现远程访问
第五步:创建用户和数据库
[代码内容]
root@ubuntuserver:~# psql -U postgres -h 127.0.0.1
postgres=# create user “IamJiwan” with password ‘IamJiwan’ nocreatedb;
postgres=# create database “mydatabase” with owner=”IamJiwan”;
[代码说明]
第一行:运行psql客户端,并指定用户为postgres主机为127.0.0.1,执行此行后需要输入密码’postgres’,如不指定则默认用户为linux系统当前登录用户,默认数据库服务器为本机;
第二行:添加数据库用户“IamJiwan“;
第三行:添加数据库“mydatabase”并设定所有者为”IamJiwan”;
用户名和数据库名称加上引号后才区分大小写,否则会自动转换成小写;
双引号作用:创建对象的时候,对象名、字段名加双引号,则表示严格区分大小写,否则都默认小写;
单引号作用:标识字符与数字的区别,并不区分大小写。
[功能说明]
创建用户和数据库
[备注内容]
postgres还提供了命令行创建用户和数据库的方法:
root@ubuntuserver:~# sudo -u postgres createuser -D -P mynewuser
root@ubuntuserver:~# sudo -u postgres createdb -O mynewuser mydatabase
第一行:-D该用户没有创建数据库的权利,-P提示输入密码,后面的选项都可以省略,命令执行的时候会提示用户选择yes或者no
第二行:-O设定所有者为mynewuser
第六步:如何安装和使用pgAdmin3客户端操作postgresql数据库
[代码内容]root@ubuntuserver:~# sudo apt-get install pgadmin3
[功能说明]
安装图形客户端pgAdmin3