Postgresql

据说Postgresql是很棒的sql,比Mysql还要出色,是Heroku的首选(默认配置),所以我选择它作为数据库。
[b]安装Postgresql[/b]
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
aptitude install libpq-dev(这个东西不装的话bundle install会报错缺少native extensions)
[b]配置Postgresql[/b]
按照: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)
[b]下载开发工具[/b]:
$ sudo apt-get install pgadmin3
$ pgadmin3启动

[b]Rails配置[/b]
安装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对于多用户的情况,是不能少的。

[b]posgres命令行[/b]
sudo -u postgres psql 进入posgres命令行,\q退出命令行
ALTER ROLE postgres WITH ENCRYPTED PASSWORD 'mypassword';修改数据库链接密码
创建数据库:create database xxx_production;

[b]报错整理[/b]
如果报错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
搞定。

[b]命令行常用操作[/b]
\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://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres
http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值