Postgresql
程序员文章站
2022-07-15 11:58:00
...
据说Postgresql是很棒的sql,比Mysql还要出色,是Heroku的首选(默认配置),所以我选择它作为数据库。
安装Postgresql
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
aptitude install libpq-dev(这个东西不装的话bundle install会报错缺少native extensions)
配置Postgresql
按照:https://help.ubuntu.com/10.04/serverguide/C/postgresql.html配置一下。需要修改 /etc/postgresql/8.4/main/postgresql.conf
去掉listen_addresses = 'localhost'前面的#,按照注释说明修改,需要重启系统。
修改/etc/postgresql/8.4/main/pg_hba.conf,改为password(明文密码)
local all postgres password
see http://www.cnblogs.com/bluesfeng/archive/2010/09/01/1815417.html
ident是明文验证密码,如果设置为trust,pgadmin3无法正常链接。
这时要: ALTER USER postgres with PASSWORD 'yourpassword'
sudo /etc/init.d/postgresql restart(服务器上可能是/etc/init.d/postgresql-8.4 restart)
下载开发工具:
$ sudo apt-get install pgadmin3
$ pgadmin3启动
Rails配置
安装Native:sudo apt-get install libpq-dev
Gemfile中:gem "pg"
然后bundle install
database.yml
development:
adapter: postgresql
encoding: unicode
database: atech_development
host: localhost
pool: 5
username: yyyyfdssfd
password: sssfdsf
注意那个host: localhost对于多用户的情况,是不能少的。
posgres命令行
sudo -u postgres psql 进入posgres命令行,\q退出命令行
ALTER ROLE postgres WITH ENCRYPTED PASSWORD 'mypassword';修改数据库链接密码
创建数据库:create database xxx_production;
报错整理
如果报错development database is not configured
/home/zj/.rvm/gems/ruby-1.9.2-p290@rails3.1.0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:62:in `establish_connection'
则请仔细检查database.yml,看里面有没有乱码,特别是空格乱码你是看不到的,但通过IDE比如Netbeans就能发现自己看不到属性。
如果报错:
rake aborted!
FATAL: Ident authentication failed for user "postgres"
/home/zj/.rvm/gems/ruby-1.9.2-p290@rails3.1.0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:991:in `initialize'
是因为没有配置Postgresql,看前面配置。
zj@loveztt:~/cms$ psql -h 127.0.0.1 -U postgres -d atech_development
在服务器端我bundle install报错:
Installing pg (0.11.0) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
解决:dpkg -l|grep postg
发现是9.1版本,就sudo aptitude install postgresql-server-dev-9.1
搞定。
命令行常用操作
\c my_db 切换到数据库my_db
查询等操作:SELECT * FROM blogs where id=2;注意分号是很重要的,表示结束。如果不加分号,它认为是多行,直到出现;后,一起执行,
\dt 列出所有的表。
Mac下将Postgresql加到自动开机启动:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
列出所有的Database clusters:
SELECT setting FROM pg_settings WHERE name = 'data_directory';
参考文章:
http://www.stuartellis.eu/articles/postgresql-setup/
https://help.ubuntu.com/10.04/serverguide/C/postgresql.html
http://*.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres
http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP
安装Postgresql
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
aptitude install libpq-dev(这个东西不装的话bundle install会报错缺少native extensions)
配置Postgresql
按照:https://help.ubuntu.com/10.04/serverguide/C/postgresql.html配置一下。需要修改 /etc/postgresql/8.4/main/postgresql.conf
去掉listen_addresses = 'localhost'前面的#,按照注释说明修改,需要重启系统。
修改/etc/postgresql/8.4/main/pg_hba.conf,改为password(明文密码)
local all postgres password
see http://www.cnblogs.com/bluesfeng/archive/2010/09/01/1815417.html
ident是明文验证密码,如果设置为trust,pgadmin3无法正常链接。
这时要: ALTER USER postgres with PASSWORD 'yourpassword'
sudo /etc/init.d/postgresql restart(服务器上可能是/etc/init.d/postgresql-8.4 restart)
下载开发工具:
$ sudo apt-get install pgadmin3
$ pgadmin3启动
Rails配置
安装Native:sudo apt-get install libpq-dev
Gemfile中:gem "pg"
然后bundle install
database.yml
development:
adapter: postgresql
encoding: unicode
database: atech_development
host: localhost
pool: 5
username: yyyyfdssfd
password: sssfdsf
注意那个host: localhost对于多用户的情况,是不能少的。
posgres命令行
sudo -u postgres psql 进入posgres命令行,\q退出命令行
ALTER ROLE postgres WITH ENCRYPTED PASSWORD 'mypassword';修改数据库链接密码
创建数据库:create database xxx_production;
报错整理
如果报错development database is not configured
/home/zj/.rvm/gems/ruby-1.9.2-p290@rails3.1.0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:62:in `establish_connection'
则请仔细检查database.yml,看里面有没有乱码,特别是空格乱码你是看不到的,但通过IDE比如Netbeans就能发现自己看不到属性。
如果报错:
rake aborted!
FATAL: Ident authentication failed for user "postgres"
/home/zj/.rvm/gems/ruby-1.9.2-p290@rails3.1.0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:991:in `initialize'
是因为没有配置Postgresql,看前面配置。
zj@loveztt:~/cms$ psql -h 127.0.0.1 -U postgres -d atech_development
在服务器端我bundle install报错:
Installing pg (0.11.0) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
解决:dpkg -l|grep postg
发现是9.1版本,就sudo aptitude install postgresql-server-dev-9.1
搞定。
命令行常用操作
\c my_db 切换到数据库my_db
查询等操作:SELECT * FROM blogs where id=2;注意分号是很重要的,表示结束。如果不加分号,它认为是多行,直到出现;后,一起执行,
\dt 列出所有的表。
Mac下将Postgresql加到自动开机启动:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
列出所有的Database clusters:
SELECT setting FROM pg_settings WHERE name = 'data_directory';
参考文章:
http://www.stuartellis.eu/articles/postgresql-setup/
https://help.ubuntu.com/10.04/serverguide/C/postgresql.html
http://*.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres
http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP
推荐阅读
-
详解Linux中PostgreSQL和PostGIS的安装和使用
-
PostgreSQL10版本中的自增列代码实例分析
-
在 Linux 上安装 PostgreSQL
-
Navicat怎么连接PostgreSQL数据库?Navicat Premium新建连接PostgreSQL数据库教程
-
在mybatis和PostgreSQL Json字段作为查询条件的解决方案
-
Nodejs对postgresql基本操作的封装方法
-
Node.js连接postgreSQL并进行数据操作
-
MySQL数据库与PostgreSQL数据库比较 哪个数据库更好些?
-
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
-
CentOS7下PostgreSQL安装过程讲解