安装与配置
yum install http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat95-9.5-2.noarch.rpm
yum install -y postgresql95-server postgresql95-contrib
service postgresql-9.5 initdb
service postgresql-9.5 start
chkconfig postgresql-9.5 on service postgresql-9.5 start
数据库操作
注意: psql的命令中不要使用
双引号
,可能有特殊意义,所以一般使用单引号
即可。
角色创建/删除命令
su - postgres
# 指定参数登录数据库
psql -U pgadmin -d pgtest -h 172.16.13.230 -p 5432
psql
# CREATEDB、LOGIN、CREATEROLE等
CREATE ROLE dbrole CREATEDB LOGIN PASSWORD 'test12345';
DROP ROLE dbrole;
# 创建用户
CREATE USER name WITH PASSWORD 'password'
\du
数据库创建/删除命令
CREATE DATABASE exampledb OWNER dbuser ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
DROP DATABASE exampledb;
数据表命令
# 插入记录
INSERT INTO newtable('apa_oano','apb02') values('IamRuby','Icomein');
# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
# 选择记录
SELECT * FROM user_tbl;
# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;
数据库备份与恢复
pg_dump engine > /tmp/backup_file
psql dbname < /tmp/backup_file
常用命令
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
出现错误
psql: 致命错误: 用户 "postgres" Ident 认证失败
将 Ident 方式改为trust或者password,修改配置文件
/var/lib/pgsql/9.5/data/pg_hba.conf
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 password
psql: could not connect to server: Connection refused
该问题是因为
/var/lib/pgsql/9.5/data/postgresql.conf
中 listen_addresses = 'localhost', 将它改为 listen_addresses = ‘*’ 即可。现在应该就能通过密码远程访问pg了。
参考:
http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
http://www.php100.com/manual/PostgreSQL8/tutorial.html