安装postgresql
正常情况下可以通过命令直接安装postgresql
sudo apt-get install postgresql-9.*
unbutu 14.04版本默认的是postgresql-9.3,如果自己本地数据库中存在postgresql事物等新关键字需要在ubuntu14.04上安装其他版本可以通过以下方法:
- 添加postgresql repository
sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main"
- 更新并安装postgresql-9.6
sudo apt-get update
sudo apt-get install postgresql-9.6
注意:
如果本地已经安装了postgresql其他版本,如果再安装postgresql-9.6,其默认端口会修改(非5432),这个特别需要注意,否则其他配置完成可能因为端口问题导致连接不上
添加新用户和数据库
- 创建系统新用户
sudo adduser dbuser
- 切换到postgre用户
sudo su - postgres
- 使用psql命令登录PostgreSQL控制台
psql
- 修改、设置postgres密码
\password postgres
按照提示输入密码,此密码是连接必须的,需要记住
- 创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码
create user dbuser with password 'password';
- 创建数据库并指定所有者
create database testdb owner dbuser;
- 给testdb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。
grant all privileges on database testdb to dbuser;
- 数据库删除
drop database testdb
- 控制台命令
- \h:查看SQL命令的解释,比如\h select。
- ?:查看psql命令列表。
- \l:列出所有数据库。
- \c [database_name]:连接其他数据库。
- \d:列出当前数据库的所有表格。
- \d [table_name]:列出某一张表格的结构。
- \du:列出所有用户。
- \e:打开文本编辑器。
- \conninfo:列出当前数据库和连接的信息。
- 退出
使用\q命令退出控制台(也可以直接按ctrl+D)
数据库操作
# 创建新表
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;
数据库远程访问设置
- 修改postgresql.conf
postgresql.conf存放位置在/etc/postgresql/9.x/main下,这里的x取决于你安装PostgreSQL的版本号,编辑或添加下面一行,使PostgreSQL可以接受来自任意IP的连接请求。
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
另外如果需要可以设置默认访问端口
port = 5432 # (change requires restart)
- 修改pg_hba.conf
pg_hba.conf,位置与postgresql.conf相同,虽然上面配置允许任意地址连接PostgreSQL,但是这在pg中还不够,我们还需在pg_hba.conf中配置服务端允许的认证方式。任意编辑器打开该文件,编辑或添加下面一行。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
默认pg只允许本机通过密码认证登录,修改为上面内容后即可以对任意IP访问进行密码验证。对照上面的注释可以很容易搞明白每列的含义,具体的支持项可以查阅文末参考引用。
- 重启service
完成上两项配置后执行sudo service postgresql restart重启PostgreSQL服务后,允许外网访问的配置就算生效了。