GVKun编程网logo

su - postgres时,显示为bash-4.2$如何解决(bash: su: command not found)

7

最近很多小伙伴都在问su-postgres时,显示为bash-4.2$如何解决和bash:su:commandnotfound这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展bas

最近很多小伙伴都在问su - postgres时,显示为bash-4.2$如何解决bash: su: command not found这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展bash – PostgreSQL – 过滤数据库列表、bash – 使用远程ssh更改postgres密码、centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、php无法使用postgresql如何解决等相关知识,下面开始了哦!

本文目录一览:

su - postgres时,显示为bash-4.2$如何解决(bash: su: command not found)

su - postgres时,显示为bash-4.2$如何解决(bash: su: command not found)

  1. 出现这样的问题是因为缺少用户配置文件,因为在Linux下每次通过useradd创建新的用户时,都会将所有的配置文件从/etc/skel复制到新用户的主目录下,一般默认在home下面的新用户主目录下,而关于/etc/skel这个目录,是主要被useradd所用到。
  2. 安装postgresql后,安装程序会自动创建postgres这个用户,但是使用 su - postgres切换用户时就无法进入,证明安装程序其实也是使用的useradd这种方式。所以我们需要手动的将/etc/skel下的几个文件cp到postgres用户下
  3. cd /etc/skel

    ls -a

    cp .bash_profile .bash_rc .bash_logout 到postgres用户目录

    我的postgres的安装目录是: /opt/Postgresql/9.4

    然后重启centos7系统

  4. su - postgres用户就能正常成功了

bash – PostgreSQL – 过滤数据库列表

bash – PostgreSQL – 过滤数据库列表

我有这个脚本(每天备份数据库):

#!/bin/bash
# Location to place backups.
backup_dir="/home/user/openerp/7.0/backup/"
#String to append to the name of the backup files
backup_date=`date +%Y-%m-%d`
#Numbers of days you want to keep copie of your databases
number_of_days=7
databases=`psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`
for i in $databases; do
  if [ "$i" != "template0" ] && [ "$i" != "template1" ]; then
    echo Dumping $i to $backup_dir$i\_$backup_date
    pg_dump -Fc $i > $backup_dir$i\_$backup_date
  fi
done
find $backup_dir -type f -prune -mtime +$number_of_days -exec rm -f {} \;

当我运行这个脚本时,它会开始正常进行数据库备份,但是当它像半数据库备份一样时,它只是挂起就像它正在做一些长备份而永远不会结束它.因此,有些时候我的某些数据库最终没有备份.

我认为这是因为它试图备份像template0和template1这样的数据库.我试着在文档中查看这个数据库过滤是如何工作的,但没有找到任何信息.

任何人都可以告诉我如何过滤除了template0,template1,postgres等数据库之外的所有数据库.如果有人可以提供链接到文档的链接也会很棒,如下所示:

`psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`

按要求输出:

demo
demo_empty1
dn1
dn2
dn3
da21
da22
nbb323
nd
nd2
pf12
postgres
rub_demo1
template0
template1
test
test3
testas_3

所以除了postgres,template0和template1之外的所有数据库

解决方法

我怀疑你对模板数据库的推测是不正确的. pg_dump几乎会立即转储它们.

更有可能的是,你的问题是pg_dump正在等待试图锁定其他人持有ACCESS EXCLUSIVE锁定的表.您必须查看哪个pg_dump进程被阻止,并检查该数据库上的pg_locks视图,以便更好地了解发生了什么.您的日志应告诉您哪个数据库停止转储,ps将告诉您哪个pg_dump正在运行. pg_stat_activity可以让你识别pg_dump进程的连接.

顺便说一句,你完全没有在这个脚本中做任何错误处理.如果备份失败,你将永远不会知道,除非你碰巧正在阅读日志并注意到pg_dump的一些有用的stderr输出.我个人建议使用pgbarman进行常规备份,但定期转储仍然是个好主意.

由于您可能希望排除template0和模板,即使它们很可能不是问题,您可以使用:

psql --tuples-only -P format=unaligned -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres'";

而不是你的文字处理解决方案.当脚本使用psql时,你会发现–tuples-only和-P format = unaligned选项非常有用.

bash – 使用远程ssh更改postgres密码

bash – 使用远程ssh更改postgres密码

我在Google Cloud实例上运行postgres数据库,我们每天都会删除并重新创建这个数据库,作为我们每晚构建的一部分.
目前这是手动完成的,我想自动化它.
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "dropdb mydb"
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "createdb mydb"
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'GRANT ALL PRIVILEGES ON DATABASE mydb to myuser;' "

这可以很好地删除并重新创建数据库,当我必须重新设置密码时问题就出现了…

gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'ALTER USER myuser WITH PASSWORD 'passwordhere' ; "

gcloud命令已经在使用双引号,psql postgres -c已经在使用单引号,我应该使用什么引号将密码放在引号中?

我试过转义引号,但它不起作用:

WITH PASSWORD \'passwordhere\'

ERROR: Syntax error at or near “\” LINE 1: ALTER USER myuser WITH
PASSWORD \passwordhere’

要么

WITH PASSWORD \"passwordhere\"

bash: -c: line 0: unexpected EOF while looking for matching `” bash:
-c: line 1: Syntax error: unexpected end of file

我如何逃避这些报价?

这似乎工作:
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'ALTER USER myuser WITH PASSWORD '\''passwordhere'\'' '; "

WITH PASSWORD '\''passwordhere'\''

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

1. 下载源码

$ mkdir /usr/downloads
$ wget -c http://cn2.php.net/distributions/php-5.6.20.tar.gz
$ tar -xvf php-5.6.20.tar.gz
$ mv php-5.6.20 /usr/local/src
$ cd !$ &amp; cd php-5.6.20
登录后复制

2. 阅读安装指导

$ ls -also
$ less README
$ less INSTALL
登录后复制

3. 安装依赖包

$ yum install apr apr-util apr-devel apr-util-devel prce lynx
登录后复制

4. 安装httpd

$ wget -c http://apache.fayea.com//httpd/httpd-2.4.20.tar.gz
$ tar -xvf httpd-2.4.20.tar.gz
$ cd httpd-2.4.20
$ ./configure \
--prefix=/usr/local/programs/apache2 \
--enable-rewrite \
--enable-so \
--enable-headers \
--enable-expires \
--with-mpm=worker \
--enable-modules=most \
--enable-deflate \
--enable-module=shared
$ make
$ make install
$ cd /usr/local/programs/apache2
$ cp bin/apachectl /etc/init.d/httpd ## 复制启动脚本
$ /etc/init.d/httpd start ## 启动apache服务器,访问http://localhost/
$ egrep -v ''^[ ]*#|^$'' /usr/local/apache2/conf/httpd.conf | nl ## 查看apache服务器的配置
## 将apache加入系统服务
vi /etc/rc.d/rc.local
```
/usr/local/programs/apache2/bin/apachectl start
```
$ cat /etc/rc.local
登录后复制

4. 安装postgresql

立即学习“PHP免费学习笔记(深入)”;

$ yum install readline-devel  ## 安装readline依赖
$ cd /usr/downloads
$ wget -c https://ftp.postgresql.org/pub/source/v9.5.0/postgresql-9.5.0.tar.bz2
$ tar -xvf postgresql-9.5.0.tar.bz2
$ cd postgresql-9.5.0
$ ./configure --prefix=/usr/local/programs/postgresql
$ make
$ su
$ make install
$ /sbin/ldconfig /usr/local/programs/postgresql/lib ## 刷新下共享动态库
$ cd /usr/local/programs/postgresql
$ bin/psql --version  ## 检查运行情况
## 开始对postgresql的配置
$ vi /etc/profile.d/postgresql.sh ## 增加环境变量,不推荐直接在/etc/profile中添加,系统更新升级时会需要merge
``` 
PATH=/usr/local/programs/postgresql:$PATH
export PATH
```
$ source /etc/profile ## 更新环境变量

## 增加用户和其他文件夹
$ adduser postgres
$ passwd postgres 
$ mkdir /usr/local/programs/postgresql/logs
$ mkdir /usr/local/programs/postgresql/data
$ chown postgres /usr/local/programs/postgresql/data
$ su - postgres

## 初始化数据库
$ ./bin/initdb -D ./data
$ ./bin/createdb test
$ ./bin/psql test
## 已有数据库,可导入data文件夹后尝试root访问,假如带密码,可能需要进一步研究下
$ ./bin/postgres -D ./data &gt;./logs/start-log-1.log 2&gt;&amp;1 &amp;
$ ./bin/psql --list  ##列出数据库
## ok,安装完成

## 自定义设置,权限控制等,可以跳过,等熟悉使用后再做
## 编辑数据库配置及权限文件:
$ vi /usr/local/programs/postgresql/data/postgresql.conf   ## 数据库配置文件
$ chown postgres postgresql.conf
$ chmod 644 postgresql.conf
$ vi /usr/local/programs/postgresql/data/pg_hba.conf   ## 权限文件
$ vi /usr/local/programs/postgresql/data/pg_ident.conf

## 设置开机自启动:
$ vi /etc/rc.d/rc.local    ## 添加如下内容
```
/usr/local/programs/postgresql/bin/postgresql start
```
登录后复制

5. 安装php

## 源码已经在第一步中下载,现在开始安装:
$ yum install libxml2 libxml2-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel
$ ./configure \
--prefix=/usr/local/programs/php \
--with-apxs2=/usr/local/programs/apache2/bin/apxs \
--with-zlib \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-zlib-dir \
--enable-mbstring \
--with-pgsql=/usr/local/programs/postgresql \
--with-pdo-pgsql=/usr/local/programs/postgresql 
$ make
$ make test
&gt; Bug #42718 (unsafe_raw filter not applied when configured as default filter) [ext/filter/tests/bug42718.phpt]  XFAIL REASON: FILTER_UNSAFE_RAW not applied when configured as default filter, even with flags
&gt; Bug #67296 (filter_input doesn''t validate variables) [ext/filter/tests/bug49184.phpt]  XFAIL REASON: See Bug #49184
&gt; Bug #53640 (XBM images require width to be multiple of 8) [ext/gd/tests/bug53640.phpt]  XFAIL REASON: Padding is not implemented yet
&gt; zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
&gt; zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
&gt;Bug #70470 (Built-in server truncates headers spanning over TCP packets) [sapi/cli/tests/bug70470.phpt]  XFAIL REASON: bug is not fixed yet

## 查阅官方的bug,发现:
&gt; id=66582: status : Closed. Fixed in master (PHP7)
&gt; id=42718: status : Assigned
&gt; id=42718: reference to id=49184, unsolved for many years
## 那就不关心了,直接装吧
$ make install
&gt; You may want to add: /usr/local/programs/php/lib/php to your php.ini include_path

## 那就按它说的设置吧
$ cp php.ini-development /usr/local/programs/php/lib/php.ini
```
include_path = ".;/usr/local/programs/php/lib/php"

## 然后,编辑httpd的设置,确保其能正确解析php文件
```
...
LoadModule php5_module modules/libphp5.so
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php5

...
<ifmodule dir_module>
    DirectoryIndex index.html index.php
</ifmodule>     
```

## 重启httpd,测试
$ cd /usr/local/programs/apache2
$ bin/httpd -h
$ bin/httpd -k stop
$ bin/httpd -f conf/httpd.conf
## 默认设置的www页面在./htdocs/下,那就先去里面建一个测试页面吧
$ vi htdocs/index.php
```
<?php phpinfo(); ?>
```
$ curl http://localhost/index.php |grep postgresql
#ok
登录后复制

后续应该做的事

* 1. 启动时,不需要要手动指定配置文件
* 2. php初始化www目录设置
* 3. php 用户、权限管理等

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了centos 7下源码编译安装php支持PostgreSQL,包括了postgresql,centos 7方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

php无法使用postgresql如何解决

php无法使用postgresql如何解决

这篇文章主要介绍“PHP无法使用postgresql如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP无法使用postgresql如何解决”文章能帮助大家解决问题。

PHP无法使用postgresql的解决办法:1、检查PHP连接pgsql时提示的错误信息;2、找到并打开PHP配置文件“PHP.ini”;3、去掉“extension=PHP_pdo_pgsql.dll”和“extension=PHP_pgsql.dll”之前的逗号;4、升级PHP版本即可。

PHP连接不上Postgresql的问题

最近遇到一个客户,使用的是Postgresql数据库,之前也没有接触用到过这个数据库。所以也算是新手了,也没有过多的发言权,只是在这里把问题记录下来分享给大家,希望后面遇到的小伙伴可以参考下,废话不多说看下面

php无法使用postgresql如何解决

用PHP连接pgsql的时候出现这个错误,总结了一下,解决方法如下:

1、在PHP配置文件 PHP.ini,去掉extension=PHP_pdo_pgsql.dll和extension=PHP_pgsql.dll之前的逗号

2、以上配置改好之后还有问题可能是PHP版本问题,我用的环境是wamp和PHPstudy 都是5.3,升级到5.6问题就解决了(5.4,5.5的版本没有试过,有兴趣自己可以试下)。

PHP开发环境搭建工具有哪些

一、PHPStudy,是一个新手入门最常用的开发环境。

二、WampServer,WampServer也同样的也是和PHPStudy一样操作简单对小白比较友好。

三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。

四、MAMP,MAMP分为两种MAMP和MAMP Pro for Mac。

五、宝塔面板,宝塔面板是一款服务器管理软件,支持windows和linux系统。

六、UPUPW,UPUPW是目前Windows平台下最具特色的Web服务器PHP套件。

关于“PHP无法使用postgresql如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注小编行业资讯频道,小编每天都会为大家更新不同的知识点。

关于su - postgres时,显示为bash-4.2$如何解决bash: su: command not found的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bash – PostgreSQL – 过滤数据库列表、bash – 使用远程ssh更改postgres密码、centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、php无法使用postgresql如何解决等相关知识的信息别忘了在本站进行查找喔。

本文标签: