Linux: Fedora 17 x86.64
PostgreSQL: PostgreSQL 9.1.6
unixODBC: 2.3.1
可通过yum命令或者是”添加/删除软件”程序来安装PostgreSQL和unixODBC。软件安装完毕,可以使用rpm-ql packagename来查看软件的安装内容和安装目录,例如希望查看postgresql.x86_64的安装信息,可执行如下命令:
rpm-ql postgresql.x86_64
下面列出的是需要安装的软件包列表:
必选软件包
postgresql.x86_64
postgresql-libs.x86_64
postgresql-server.x86_64
postgresql-odbc.x86_64
unixODBC.x86_64
可选软件包
postgresql-devel.x86_64
unixODBC-devel.x86_64
在使用PostgreSQL数据库之前,需建立一个名为”postgres”的Linux系统的登陆账号。使用root账号执行一下命令。
建立账号:
useradd postgres
设置密码:
passwd postgres
编辑/var/lib/pgsql/data/pg_hba.conf,进行如下修改:
local replication postgres peer
host replication postgres 127.0.0.1/32 ident
host replication postgres ::1/128 ident
替换为:
local replication postgres trust
host replication postgres 127.0.0.1/32 trust
host replication postgres ::1/128 trust
在初次启动PostgreSQL之前,需要先初始化数据库,否则直接启动数据库的时候,会报错,并提示你初始化数据库。初始化步骤如下:
执行如下命令,将/var/lib/pgsql/data置空:
rm-rf /var/lib/pgsql/data/*
rm-rf /var/lib/pgsql/data/*.*
初始化PostgreSQL,运行命令:
postgresql-setupinitdb
启动数据库服务进程后,按照如下步骤对数据库进行连接测试。
启动数据库系统服务
运行命令:
systemctlstart postgresql.service
切换用户
运行命令:
su– postgres
连接数据库系统
执行命令:
psql数据库名称
使用管理员账号(root)执行如下命令启动PostgreSQL服务:
systemctlstart postgresql.service
使用管理员账号(root)执行如下命令启动PostgreSQL服务:
systemctlstop postgresql.service
PostgreSQL提供了两个log文件,分别是:
/var/lib/pgsql/initdb.log
/var/lib/pgsql/data/pg_log/postgresql-xxxx.log
不同机器,位置可能略有不同,这两个log文件可分别用于查看初始化的过程和启动后的工作过程。
PostgreSQL相关软件包中包含了一些可以用来操作数据库的命令。
建立用户
createusergxas
删除用户
dropusergxas
建立数据库
createdbtestdb
删除数据库
dropdbtestdb
进入PostgreSQL命令行,依次执行下面两个命令:
supostgres
psql
成功后,显示命令行提示符
postgres=#
SQL命令
如createtable
psql元命令
以\开头,如\h,\d
help帮助文档
postgres=#help执行后显示下面内容:
Type: \copyright for distribution terms
\hfor help with SQL commands \h列出SQL命令
\?for help with psql commands \?列出psql元命令
\gor terminate with semicolon to execute query
\qto quit退出
\h列出所有SQL命令
\hCOMMAND列出某个命令的使用方法
例子:
\hcreate view
建立一个PostgreSQL用户
createuser gxas;
建立用户并设置密码
CREATEUSER name PASSWORD 'string';
修改用户密码
alteruser username with password 'new password'
删除一个PostgreSQL用户
dropuser gxas;
查看所有PostgreSQL用户
selectusename from pg_user;
或者使用:
\du
建立一个数据库
createdatabase testdb;
删除数据库
dropdatabase testdb;
查看数据库列表
SELECTdatname FROM pg_database;
或者:
\l
连接到某个数据库
\clogink;
连接到数据库logink
查看某个数据库内的表
\clogink;
\d
以上例子用来显示数据库logink的表
可以通过执行SQL脚本来对某个数据库进行建表,导入数据等操作
编写对数据库进行操作的SQL语句,并保存到一个文本文件中。
使用前面章节中的方法建立数据库
执行SQL
假设数据库名字:logink
数据库用户:postres
sql文件:logink.sql
使用postgre账号执行命令:
psql-h localhost -U postgres -d logink < logink.sql
开放数据库互连(OpenDatabase Connectivity,ODBC)是微软公司开放服务结构(WOSA,WindowsOpen ServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
unixODBC是一个可以让你在Unix/Linux系统下使用ODBC来连接数据库的组件。
unixODBC主要有两个配置文件:
/etc/odbc.ini
/etc/odbcinst.ini
在使用unixODBC之前,需要对这两个文件进行设置,下面举例说明具体的使用方法。
数据库名: logink
数据库访问帐号: postgres
密码:postgres
按照如下步骤和说明进行配置:
编辑/etc/odbc.ini,加入红色字体部分
[ODBCData Sources] #此部分配置所使用的数据库类型
Logink=PostgreSQL#定义一个名为Logink的数据源
MySQL=MySQL
[Logink]#数据源Logink的配置信息
;WARNING: The old psql odbc driver psqlodbc.so is now renamedpsqlodbcw.so
;in version 08.x. Note that the library can also be installed under another
;path than /usr/local/lib/ following your installation.
Driver=/usr/lib64/psqlodbcw.so#所安装的数据库的odbc驱动的位置
Description=Connectionto LDAP/POSTGRESQL #描述
Servername=localhost#数据库服务器地址
Port=5432#数据库服务器端口
Protocol=6.4#协议版本
FetchBufferSize=99#缓冲区大小
Username=postgres#数据库用户
Password=postgres#数据库用户密码
Database=logink #数据库名
ReadOnly=no
Debug=1
CommLog=1
[MySQL]
Driver=/usr/lib64/libmyodbc5.so
Servername=localhost
Port=3306
Prorocol=6.4
FetchBufferSize=99
Username=root
Password=
Database=mysql_ldap
ReadOnly=no
Debug=1
CommLog=1
[ODBC]
InstallDir=/usr/lib64
编辑/etc/odbcinst.ini,如下所示
[ODBC]
Trace =1
Debug =1
Pooling =No
[MySQL]
Description =ODBC for MySQL
Driver =/usr/lib64/libmyodbc5.so
Setup =/usr/lib64/libodbcmyS.so
Driver64 =/usr/lib64/libmyodbc5.so
Setup64 =/usr/lib64/libodbcmyS.so
FileUsage =1
[PostgreSQL]
Description =ODBC for PostgreSQL
Driver =/usr/lib64/psqlodbcw.so
Driver64 =/usr/lib64/psqlodbcw.so
Setup =/usr/lib64/psqlodbcw.so
Setup64 =/usr/lib64/psqlodbcw.so
UsageCount =
CPTimeout =
CPTimeToLive =
DisableGetFunctions =
DontDLCLose =
ExFetchMapping =
Threading =
FakeUnicode =
IconvEncoding =
Trace =
TraceFile =
TraceLibrary =
使用isql连接数据库,执行如下命令:
isqlLogink
命令行中的Lonink是/etc/odbc.ini文件中[ODBCData Sources] 设置的数据源:
[ODBCData Sources]
Logink=PostgreSQL
MySQL=MySQL
连接成功后,有如下提示符:
+---------------------------------------+
|Connected! |
| |
|sql-statement |
|help [tablename] |
|quit |
| |
+---------------------------------------+
SQL>