Linux环境下 PostgreSQL 导表的一些坑

Linux环境下 PostgreSQL 导表的一些坑

大家好,又见面了,我是你们的朋友全栈君。

  加班是为了不加班。

  Java中使用了Process类,process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。

  

Process process =null;
String command1 = “你的命令”;
process = Runtime.getRuntime().exec(command1);
process.waitFor();

  一般这样写就可以调用了。

  在Linux环境下,想通过PostgerSQL自身的命令来进行导表,要准备以下几个事。

  1. 准备好要导入的表,最好也是使用PostgreSQL导出的,存放于Linux某目录,用于导入;

     2.设置好PostgreSQL命令的环境变量,和设置JDK一样(很重要),将~/.bash_profile下的加一个PATH路径,指向到bin目录;

       3.设置密码配置;

  

方法一:设置环境变量 PGPASSWORD   

PGPASSWORD  是 PostgreSQL 系统环境变量,在客户端设置这后,那么在客户端连接远端数据库时,将优先使用这个密码。


--测试
postgres@linux-> export PGPASSWORD=mypassword                

postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres
psql (8.4.4)
Type "help" for help.                          
                                                       
Mydb=> \q             

     备注:设置环境变量  PGPASSWORD ,连接数据库不再弹出密码输入提示。 但是从安全性方面考虑,这种方法并不推荐。


方法二:设置 .pgpass 密码文件
       
通过在客户端 /home/postgres 目录下创建隐藏文件 .pgpass ,从而避免连接数据库时弹出密码输入提示。

--创建密码文件 .pgpass ( on 客户端 )                               
vi /home/postgres/.pgpass       
                                     
--格式                                                               
hostname:port:database:username:password                             
                                                                     
--范例                                                               
192.168.1.25:5432:Mydb:postgres:mypassword                                   
                                                                     
--权限                                                               
Chmod 600 .pgpass                  

--连接测试
postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres

psql (8.4.4)
Type "help" for help.                          
                                                       
Mydb=>

      备注:在/home/postgres 目录创建了密码文件 .pgpass 文件后,并正确配置连接信息,那么客户端连接数据时会优先使用 .pgass文件, 并使用匹配记录的密码,从而不跳出密码输入提示,这种方法比方法一更安全,所以推荐使用创建 .pgpass 文件方式。                                

                               
方法三:修改服务器端 pg_hba.conf

修改认证文件 $PGDATA/pg_hba.conf, 添加以下行, 并 reload使配置立即生效。
     
host    Mydb         postgres            192.168.0.0/24           trust

[postgres@linux]$ pg_ctl reload -D $PGDATA / service postgresql reload
server signaled

--服务器端 pg_hba.conf 的配置
# IPv4 local connections:
host    all             all                 127.0.0.1/32               trust
host    Mydb        postgres       192.168.0.0/24           trust
host    all             all                  0.0.0.0/0                    md5

--客户端再次连接测试
postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres

psql (8.4.4)
Type "help" for help.    

Mydb=> \q

     备注:修改服务端 pg_hba.conf 并 reload 后,不再弹出密码输入提示。

  

      我目前使用的第一种。该方法我还会继续改进一下。

  然后使用psql命令就可以正确导入了。

转载于:https://www.cnblogs.com/yulonglyw/p/9369070.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107402.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Nginx出现403 forbidden

    Nginx出现403 forbiddennginx访问时报403,于是查看nginx日志,路径为/var/log/nginx/error.log。打开日志发现报错Permissiondenied,详细报错如下:1.open()"/data/www/1.txt"failed(13:Permissiondenied),client:192.168.1.194,server:www.web1.com,re…

  • BigDecimal除法运算报错

    BigDecimal除法运算报错今天在运用BigDecimal做除法运算的时候,错误如下:Non-terminatingdecimalexpansion;noexactrepresentabledecimalresult 不是很明白为什么会这个样子,度娘告诉我是因为BigDecimal做除法运算,如果除的结果为无限小数的时候就会报错。解决方法是:  divide(BigDecimaldivisor,…

  • 科研方法与学术论文写作_科技论文写作与发表教程第八版pdf

    科研方法与学术论文写作_科技论文写作与发表教程第八版pdf导读:本文推荐四个学术英语写作用到的网站/插件,让你的表达更地道,更多样,减少错误。它们分别是:AcademicPhrasebank,Linggle,collocaid,grammely。1.AcademicPhrasebank网址:http://www.phrasebank.manchester.ac.uk/这个网站提供论文各部分的模版,如介绍怎么写,总结怎么写,如何描述方法,报告细节等。比如现在需要在文章中举例,可以点击GivingExamples,点击页面显示的各项内容.

    2022年10月29日
  • drupal安装心得

    drupal安装心得一转眼,原来发现自己两个月没有写blog,。其实这两个月做了很多东西,但细想却没有什么值得拿出来和大家分享。前几天公司的bbs倒了,于是想重装一个类似于blog或者论坛之类的东西。由于IT的同事只熟悉PHP,于是到处找php的建站资源。后来nomad介绍drupal,Rayman也说这个不错,于是就尝试安装一个。网上的资料基本都是Linux下的安装过程介绍,几个rpm装好apache/mysql/

  • 什么是pisa测试_PISA测试背后:哪些学校代表中国考第一

    什么是pisa测试_PISA测试背后:哪些学校代表中国考第一《21世纪经济报道》12月13日消息,在北京金融行业工作的王鑫如,去年女儿出生后就开始规划送她去哪里接受教育,留在北京,还是随着一个工作机会去香港,或者全家移民国外?她说,将来女儿读大学很大可能会去国外,但基础教育阶段有没有必要出去?中国的基础教育竞争力到底强不强?大学有各种国际排行榜单,不同国家的中小学质量要如何对比?12月3日公布的第七轮国际学生评估结果(ProgrammeforInter…

  • 对抗训练[通俗易懂]

    对抗训练[通俗易懂]对抗训练思想理解~

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号