Linux下调试PostgreSQL数据库
来源:互联网 发布:石油大学华东网络教育 编辑:程序博客网 时间:2024/04/29 04:24
1.环境准备
这里采用的是源码安装的方式进行postgresSQL安装的,源码下载在这里
准备源码包为:postgresql-9.4.1.tar.gz
操作系统:ubuntu 14.04 x64 server
解压源码包:
#tar zxvf postgresql-9.4.1.tar.gz#cd postgresql-9.4.1/#./configure --enable-debug --without-readline --without-zlib #make -j4#make install
这里在执行configure的时候,需要增加debug选项,这样生成的makefile文件才会有-g调试选项,另外,生成makefile文件之后还需要修改一下./src
目录下的Makefile.global
文件,将其中的-O2选项去掉,由于-O2选项编译优化可能会打乱代码秩序,对于源代码流程查阅可能有影响。
2.使用数据库
上面第一步已经完成了数据库的安装,接下来是使用数据库,那么如何使用。处于安全性考虑Postgresql是不会让你用root用户操作的,所以这里需要增加一个数据库专用用户。
#adduser postgre#chown -R postgre:postgre /usr/local/pgsql/
接下来切换用户,然后初始化postgreSQL的数据文件:
#su postgre$cd ~$mkdir data$/usr/local/pgsql/bin/initdb data/ //初始化数据库文件$/usr/local/pgsql/bin/pg_ctl -D data/ -l logfile start //启动数据库服务$/usr/local/pgsql/bin/psql template1 //进入数据库服务
到这一步就可以进入postgreSQL数据库服务器了,可以执行语句,具体如下所示:
psql (9.4.1)Type "help" for help.template1=# select pg_backend_pid(); pg_backend_pid ---------------- 31073(1 row)
这里通过select pg_backend_pid()函数调用来获取postgresSQL实例的进程号。接下来就是gdb神奇的功能了,gdb可以通过进程号调试正在运行的进程,当然,此举必须在root用户下执行。新开一个ssh窗口,切换到root用户,输入:
#gdb /usr/local/pgsql/bin/postgres 31073
这样就启动了gdb调试器,于是就可以调试postgres程序了,如下图所示:
当我们在gdb中输入s(step)时,会发现此时程序阻塞了,这时候是在等待用户的数据,我们切换到postgre用户窗口,在template1=#
中输入SQL语句。
psql (9.4.1)Type "help" for help.template1=# select * from test1;
切换到root窗口,可以发现gdb调试程序不再阻塞,如下图所示:
在调试页面可以看到我们刚刚输入的字符串,说明程序能够正常调试。
- Linux下调试PostgreSQL数据库
- linux下调试postgreSQL
- linux下安装PostgreSQL数据库
- Linux下安装PostgreSQL数据库
- 如何在Linux下调试PostgreSQL
- Linux下免费数据库PostgreSQL开发入门
- Linux下免费数据库PostgreSQL开发入门
- Linux下免费数据库PostgreSQL开发入门
- linux下postgresql数据库的安装
- Linux下免费数据库PostgreSQL开发入门
- Linux下免费数据库PostgreSQL开发入门
- linux下postgresql数据库debug环境搭建
- Linux下免费数据库PostgreSQL开发入门
- Linux下免费数据库PostgreSQL开发入门
- Linux下定时备份Postgresql数据库
- linux下postgresql新增指定用户数据库
- ubuntu下postgresql数据库的安装和调试
- Linux下用Eclipse编译、安装、运行、调试PostgreSQL源码
- 标准IO 计算缓冲区的长度<Ps:全缓存4096, 行缓存1024,不带缓存0>
- File杂谈——拖拽上传前传
- ORACLE wmsys.wm_concat()函数把某列数据整合到一起
- 吉布斯采样(Gibbs Sampling)及相关算法
- 面向对象1
- Linux下调试PostgreSQL数据库
- 优先队列_二叉堆
- 【leetcode】Excel Sheet Column Title【java】
- Android 开发之PopupWindow
- File杂谈——拖拽异步上传实现
- 关于leancloud
- vs2010+cryplib.lib出现错误,是运行库设置的问题
- cocos2d js去掉左下角的三行数字
- zsh安装和插件安装总结