本文中,将总结自己如何实现在ARM开发板对Postgresql服务器的远程访问,有C程序,具体步骤如下:
1ubuntu10.10下 postgresql安装及配置
1.1.安装 postgresql,命令如下:
#apt-get install postgresql
( 命令开头的 # 代表当前为 root 用户,下同 )
系统会提示安装所需磁盘空间,输入 "y" ,安装程序会自动完成。 安装完毕后,系统会创建一个数据库超级用户“ postgres”, 密码为空。这个用户既是不可登录的操作系统用户,也是数据库用户。
1) 切换到 Linux 下 postgres 用户
#su postgres
$psql postgres
这样你会看到 postgres 提示信息如下:
psql (8.4.6)
输入 "help" 来获取帮助信息 .
postgres=#
注意:如果此处不能进入,则需要修改 /etc/postgresql/8.4/main/pg_hba.conf 中的
# Database administrative login by UNIX sockets
local all postgres ident
其中的 ident替换为: trust(信任,不需要密码验证),即:
local all postgres trust
然后重启 postgresql数据库 ,命令为: #/etc/init.d/postgresql restart,然后执行 修改数据库超级用户 postgres的密码的步骤 。
3) 输入如下命令,器中的 password替换为你的密码,
ALTER USER postgres with PASSWORD 'password'
键入“ /q” 返回到 Linux 命令行。
# createuser -drSP yuyanchao
为新角色输入的口令 :
再输入一遍 :
口令 :
切换到用户 yuyanchao :
#su yuyanchao
创建数据库
$createdb -O yuyanchao yycdb
5. 配置本地服务器的远程访问
1) 在 /etc/postgresql/8.4/main/pg_hba.conf 中添加 :
host all all 192.168.1.1/24 md5
其中的 24 代表子网掩码为 24 位, 代表 192.168. 1 .1-192.168. 1 .254 的都能够访问本地数据库。这里假设本地的该服务器 ip 和需要远程连接该服务器的 ARM 板中 linux 系统的 ip 均在 192.168. 1 .1-192.168. 1 .254 之间。
2)修改 /etc/postgresql/8.4/main/postgresql.conf 中的 listen_address 为 '*' ,如下:
listen_address = '*'
3)重启数据库
#/etc/init.d/postgresql-8.4 restart
2.ARM板上 psql的安装以及如何远程访问 postgresql数据库
2.1.下载源码, http://www.postgresql.org/ ,本人下载的是 postgresql-8.4.6,进入目录,交叉编译,命令如下:
其中的 <your own dir>,是你的安装目录,本人选的是: /mini6410_ln/root_nfs/
2.2.将安装目录 <your own dir>中 bin目录和 lib目录下的文件拷贝到 ARM板的 linux系统下的 bin和 lib目录中
#psql -h 192.168.1.102 -U yuyanchao -d yycdb
命令中 192.168.1.102是我的服务器的 IP地址,要根据情况替换为正确的 IP,
如果出现:
Password for user yuyanchao:
psql (8.4.6)
Type "help" for help.
yycdb=>
则说明访问成功!
3.使用 C语言程序实现 ARM板对服务器的访问
3.1.testlibpq .c 程序如下:
Makefile 文件说明: ARMLIBS = /mini6410_ln/root_nfs/lib 中的 /mini6410_ln/root_nfs/ 目录是本人交叉编译是的目录。
3.3. 将 testlibpq.c 和 Makefile 文件放在同一个目录中,运行命令:
#make testlibpg-arm
注意:也可以不用 Makefile 文件,而采用命令直接生成,只需执行如下两个命令:
#arm-linux-gcc -I/usr/include/postgresql -c testlibpq.c -o testlibpq.o
#arm-linux-gcc -o testlibpq-arm testlibpq.o -L/mini6410_ln/root_nfs/lib -lpq
同样: /mini6410_ln/root_nfs/lib 中的 /mini6410_ln/root_nfs/ 目录是本人交叉编译是的目录。
3.4. 将 testlibpg-arm 拷贝到 ARM 板的 Linux 系统中,在 ARM 板中执行:
#chmod 777 testlibpq-arm
#./testlibpq-arm "host=192.168.1.102 user=yuyanchao dbna me=yycdb password=123456"
出现
datname datdba encoding datcollate datctype dati
template1 10 6 en_US.utf8 en_US.utf8 t }
template0 10 6 en_US.utf8 en_US.utf8 t }
postgres 10 6 en_US.utf8 en_US.utf8 f
yycdb 16426 6 en_US.utf8 en_US.utf8 f
或者类似信息,说明链接成功!
原文链接:https://www.f2er.com/postgresql/196941.html