GVKun编程网logo

升级到 OSX 10.7 Lion 后修复 Postgresql(pg数据库升级)

15

在这里,我们将给大家分享关于升级到OSX10.7Lion后修复Postgresql的知识,让您更了解pg数据库升级的本质,同时也会涉及到如何更有效地1Ambari从Postgresql8.4升级到9.

在这里,我们将给大家分享关于升级到 OSX 10.7 Lion 后修复 Postgresql的知识,让您更了解pg数据库升级的本质,同时也会涉及到如何更有效地1 Ambari从Postgresql8.4升级到9.2、c#中的Postgresql Npgsql.PostgresException、centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、macosx 下从 PostgreSQL 14 更新到 PostgreSQL 15的内容。

本文目录一览:

升级到 OSX 10.7 Lion 后修复 Postgresql(pg数据库升级)

升级到 OSX 10.7 Lion 后修复 Postgresql(pg数据库升级)

我最近升级到 OSX 10.7,此时我的 rails 安装在尝试连接到 psql 服务器时完全失败了。当我从命令行使用

psql -U postgres

它工作得很好,但是当我尝试使用相同的用户名和密码运行 rails 服务器或控制台时,我得到了这个错误

...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize'': could not connect to server: Permission denied (PGError) Is the server running locally and accepting    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

任何可能发生的想法都会非常有帮助!谢谢!

答案1

小编典典

这是一个路径问题。Mac OSX Lion 现在在系统中包含 Postgresql。如果您这样做,which psql您可能会看到HomeBrew
正确的是哪个而不是哪个usr/bin/psqlusr/local/bin/psql如果您运行brewdoctor,您应该会收到一条消息,说明您需要添加usr/local/bin到 PATH 环境变量的头部。

编辑您的 .bash_profile 或 .profile,或您正在使用的任何 shell 并添加: exportPATH=/usr/local/bin:$PATH

作为第一个导出PATH然后退出你的shell会话或源你的文件,source ~/.bash_profile现在应该可以了。

1 Ambari从Postgresql8.4升级到9.2

1 Ambari从Postgresql8.4升级到9.2

1.1 安装Postgresql9.2

1) 安装依赖

安装readline-devel.x86_64 0:6.0-4.el6和ncurses-devel.x86_64 0:5.7-3.20090208.el6

rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm

rpm -ivh readline-devel-6.0-4.el6.x86_64.rpm

2) 创建目录

mkdir /usr/local/hly

3) 将postgresql-9.2.24.tar.gz上传到服务器/usr/local/hly目录

/usr/local/hly/postgresql-9.2.24.tar.gz

4) 解压文件

cd /usr/local/hly/

tar -zxvf postgresql-9.2.24.tar.gz

mv postgresql-9.2.24 ../

cd ../postgresql-9.2.24

5) 配置安装

./configure --prefix=/usr/local/pgsql

make && make install

安装完成

1.2 环境配置

说明:以下步骤如果已经设置,则省略。

1) 添加一个用户(此步骤已配置,省略)

useradd postgres

#新建一个数据目录

mkdir /usr/local/pgsql/data

2) 赋予权限

chown postgres:postgres /usr/local/pgsql/data

3) 切换到postgres用户

su - postgres

4) 进入bin目录

cd /usr/local/pgsql/bin

5) 初始化数据库

./initdb -D /usr/local/pgsql/data

6) 退出postgres用户

exit

7) 设置启动脚本

重命名原来的启动脚本

mv /etc/init.d/postgresql /etc/init.d/postgresql8.4

复制postgresql的源码包目录下的linux启动脚本到/etc/init.d

cp /usr/local/postgresql-9.2.24/contrib/start-scripts/linux /etc/init.d/postgresql

赋予执行权限

chmod 755 /etc/init.d/postgresql

8) 环境变量设置

vi /etc/profile添加

export PATH=/usr/local/pgsql/bin:$PATH

执行source /etc/profile

9) 启动数据库

service postgresql start

10) 开机启动

chkconfig postgresql on

#刚安装好的postgresql数据库还没有密码(跟旧版保持一致,如果旧版没设置密码,下面也不需要设置)

#连接到数据库,修改管理员密码

/usr/local/psql/bin/psql -U postgres

#执行以下语句,给postgres用户设置密码

ALTER USER postgres WITH PASSWORD '你的密码';

#退出

\q

#到这里,新数据库就算配置好了。

1.3 迁移Ambari数据库

1) 数据库迁移

cd /var/lib/pgsql/data/

mkdir /home/postgres

chown postgres:postgres /home/postgres

2) 备份数据

pg_dump -U postgres ambari > /home/postgres/ambari.bak

pg_dump -U postgres ambarirca > /home/postgres/ambarirca.bak

3) 恢复数据

创建用户

CREATE ROLE ambari WITH LOGIN PASSWORD 'bigdata';

CREATE ROLE mapred WITH LOGIN PASSWORD 'mapred';

create database ambari;

create database ambarirca;

psql -U postgres ambari < /home/postgres/ambari.bak

psql -U postgres -d ambarirca < /home/postgres/ambarirca.bak

c#中的Postgresql Npgsql.PostgresException

c#中的Postgresql Npgsql.PostgresException

我有cmd.ExecuteReader()的问题我得到一个Npgsql.PostgresException

public void connectDB()
    {
        try
        {
            server = "localhost";
            database = "DoveVer3";
            uid = "admin";
            password = "admin";
            string connectionString;
            connectionString = "Host=" + server + ";Username =" + uid + ";" + "PASSWORD=" + password + ";DATABASE=" + database;

            connection.ConnectionString = connectionString;
            connection.open();

        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);

        }


    }

我在下面的代码中获得了Exeption:

public void AddDovetoDB(Dove dove)
    {
        //add new dove record to tableDB
        connectDB();
        cmd = new NpgsqlCommand();
        cmd.Connection = connection;
        cmd.CommandText = "SELECT * FROM " + DoveTableDB + " WHERE `" + DoveIdColumnDoveTable + "` = '" + dove.GetDoveId() + "'";
        NpgsqlDataReader rdr = cmd.ExecuteReader(); //// <<<<< HERE
        if (rdr.Read() != true)
        {
            rdr.Close();
            cmd.Parameters.Clear();

            cmd.CommandText = "INSERT INTO " + DoveTableDB + "(" + DoveIdColumnDoveTable + "," + DoveIdFatherColumnDoveTable + "," + DoveIdMotherColumnDoveTable + "," + DoveEyesColorColumnDoveTable + "," + DoveFeatherColorDoveTable + "," + DoveImageNameColumnDoveTable + "," + DoveSexColumnDoveTable +") VALUES ('" + dove.GetDoveId() + "','" + dove.GetDoveFatherId() + "','" + dove.GetDoveMotherId() + "','" + dove.GetEyesColor() + "','" + dove.GetFeathersColor()+ "','" + dove.GetimageName() + "','" + dove.GetSex()+ "')";
            cmd.ExecuteNonQuery();

        }
        connection.Close();
    }

我的数据库名为DoveVer3,我的架构DoveSchema在这里是我的表代码:

Name: DoveTable; Type: TABLE; Schema: DoveSchema; Owner: admin
--

CREATE TABLE "DoveTable" (
    "doveId" character varying(20)[] NOT NULL,"doveFather" character varying(20)[],"doveMother" character varying,"doveEyesColor" character varying(20)[],"doveFeathersColor" character varying(20)[],"doveSex" smallint DEFAULT 3 NOT NULL,"imageName" character varying(30)
);
ALTER TABLE "DoveTable" OWNER TO admin;

例外基础信息:

relation “dovetable” don’t exist; Statemants: {SELECT * FROM DoveTable
WHERE doveId = ‘Test’}

解决方法

默认情况下,传递给Postgresql的所有标识符都将被视为小写.根据您的创建脚本,在定义表时使用了 quoted-identifer,因此在使用表名时需要以下内容.

SELECT * FROM "DoveTable"

请注意,它用双引号括起来,’D’和’T’都是大写的.使用带引号的标识符时,必须始终按照定义它们的方式将它们写出来.

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教程有兴趣的朋友有所帮助。

macosx 下从 PostgreSQL 14 更新到 PostgreSQL 15

macosx 下从 PostgreSQL 14 更新到 PostgreSQL 15

macosx 下从 PostgreSQL 14 (PG14) 更新到 PostgreSQL 15 (PG15)

1) 修改 PG14 运行端口

修改 PG14 的运行端口到 15432

sudo vim /Library/PostgreSQL/14/data/postgresql.conf

port = 5432   =>. port = 15432

重启 PG14

sudo -u postgres /Library/PostgreSQL/14/bin/pg_ctl -D /Library/PostgreSQL/14/data restart

 

2) 安装 PG15,运行端口默认为 5432

 

3)修改 PG15,PG15 的 pg_hba.conf 文件,让本地互信

sudo vim /Library/PostgreSQL/14/data/pg_hba.conf

sudo vim /Library/PostgreSQL/15/data/pg_hba.conf

 

local all all trust

 

重启

sudo -u postgres /Library/PostgreSQL/14/bin/pg_ctl -D/Library/PostgreSQL/14/data restart

sudo -u postgres /Library/PostgreSQL/15/bin/pg_ctl -D/Library/PostgreSQL/15/data restart

 

4) 切换目录,停止服务器

升级过程中会有写入,切换到 /tmp 目录下

cd /tmp

停止服务器

sudo -u postgres /Library/PostgreSQL/12/bin/pg_ctl -D/Library/PostgreSQL/12/data stop

sudo -u postgres /Library/PostgreSQL/13/bin/pg_ctl -D/Library/PostgreSQL/13/data stop

 

5)升级

先测试

sudo -u postgres /Library/PostgreSQL/13/bin/pg_upgrade -c -d /Library/PostgreSQL/12/data -D /Library/PostgreSQL/13/data -b /Library/PostgreSQL/12/bin -B /Library/PostgreSQL/13/bin -p 15432 -P 5432

若 locale 不一致,登录 PG13,升级一下,安全前可以选择合适的 locale 值。

UPDATE pg_database SET datcollate=''zh_CN.UTF-8'', datctype=''zh_CN.UTF-8'' WHERE datname=''template0'';

UPDATE pg_database SET datcollate=''zh_CN.UTF-8'', datctype=''zh_CN.UTF-8'' WHERE datname=''template1'';

UPDATE pg_database SET datcollate=''zh_CN.UTF-8'', datctype=''zh_CN.UTF-8'' WHERE datname=''postgres'';

select datname, datcollate, datctype from pg_database;

没有报错后,再执行

sudo -u postgres /Library/PostgreSQL/13/bin/pg_upgrade -v -d /Library/PostgreSQL/12/data -D /Library/PostgreSQL/13/data -b /Library/PostgreSQL/12/bin -B /Library/PostgreSQL/13/bin -p 15432 -P 5432

关于升级到 OSX 10.7 Lion 后修复 Postgresqlpg数据库升级的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于1 Ambari从Postgresql8.4升级到9.2、c#中的Postgresql Npgsql.PostgresException、centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、macosx 下从 PostgreSQL 14 更新到 PostgreSQL 15等相关内容,可以在本站寻找。

本文标签: