postgres安装
本文主要介绍一下在linux(CentOS7.1)下postgres的安装,后续的一篇博文会着重的介绍一下SQL操作。
注:
- #:超级用户提示符
- $:普通用户提示符
安装
1 | $ sudo yum install postgresql |
修改用户postgres密码
1 | $ sudo passwd postgres #重置新密码 |
配置
初始化数据库
1 | $ sudo mkdir -p /var/lib/pgsql/data #创建pgsql的数据库目录 |
修改配置文件
修改/var/lib/pgsql/data/postgresql.conf
文件,修改postgresql.conf的目的是修改连接权限;
1 | # vim /var/lib/pgsql/data/postgresql.conf |
1 | listen_addresses = '*' #监听所有ip的连接,默认是本机 ip,当然也可以设置局域网ip |
修改/var/lib/pgsql/data/pg_hba.conf
文件,修改pg_hba.conf的目的是设置谁才可以操作数据服务器
1 | # vim /var/lib/pgsql/data/pg_hba.conf |
1 | # TYPE DATABASE USER CIDR-ADDRESS METHOD |
psql使用
启动
命令:
1 | # systemctl start postgresql.service |
但是出现了一个问题:
使用systemctl status postgresql.service
查看日志信息:
检查:
配置防火墙,在
/etc/sysconfig/iptables
中添加1
2-A INPUT -p tcp -m state --state NEW -m tcp --dport 5432 -j ACCEPT //postgresql的端口是5432
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT然后设置
systemctl enable postgresql.service
来设置/usr/lib/systemd/system/postgresql.service
文件。
成功启动的psql如下所示:
通过netstat -tpnl | grep 5432
来查看5432端口的情况。
添加用户和数据库
推荐两个学习的网站:
首先,在linux下进入到postgres
用户名下,然后进入到postgres的控制台:
1 | # su postgres |
这样就进入了数据库的控制台。
1 | #不要忘记每句话后的";",建立数据库用户时,首先linux系统下要有user用户(adduser user ),然后才可以再把user用户指定为数据库的用户。 |
控制台命令:
- \h:查看SQL命令的解释,比如\h select。
- \?:查看psql命令列表。
- \l:列出所有数据库。
- \c [database_name]:连接其他数据库。
- \d:列出当前数据库的所有表格。
- \d [table_name]:列出某一张表格的结构。
- \du:列出所有用户。
- \e:打开文本编辑器。
- \conninfo:列出当前数据库和连接的信息
建立数据表
1 | psql -U matt -d bank -h 127.0.0.1 -p 5432#上面命令的参数含义如下:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口。 |
1 | -- 建立四张表,不要忘记最后面的“;”号 |
其他的SQL命令会后续的博客中详细介绍。
遇到的问题
连接数据库失败
错误为org.postgresql.util.PSQLException: FATAL: password authentication failed for user "postgres"
。
打开Postgresql安装目录下的data文件夹,找到pg_hba.conf文件并打开。修改认证方式,将md5改为trust,然后保存。
1 | # TYPE DATABASE USER CIDR-ADDRESS METHOD |
开启端口
有可能是电脑的端口5432的TCP/IP允许没有开启。
JAVA接口
1 | import java.sql.Connection; |
这里必须要有数据库关闭的操作。
连接数过多
So many clients alreay!
.
查看的命令:
1 | --控制台下输入 |
修改/var/lib/pgsql/data/postgresql.conf
文件的max_connections
,默认为100.但是更多的时候需要考虑的是为什么数据库的连接会那么多,一般情况下是自己的程序出错了。
参考:
公众号
个人公众号(柳年思水)已经上线,最新文章会同步在公众号发布,欢迎大家关注~