设为首页 收藏本站
查看: 1721|回复: 0

[经验分享] Centos 7.3 安装配置 PostgreSQL 9.x

[复制链接]

尚未签到

发表于 2017-11-15 12:56:36 | 显示全部楼层 |阅读模式
  一、安装 PostgresSQL
  Centos 7 自带的 PostgresSQL 是 9.2 版的。因为,yum 已经做了国内源,速度飞快,所以直接就用 yum 安装了。依次执行以下命令即可,非常简单。



sudo yum -y install postgresql-server postgresql
sudo service postgresql initdb
sudo chkconfig postgresql on
sudo systemctl enable postgresql
sudo systemctl start postgresql
  如果需要安装最新的版本,那就按官网上的说明来吧,但那个下载速度实在是……
  https://www.postgresql.org/download/linux/redhat/
  二、控制台 & 基本命令 & 数据库操作
  PostgresSQL 默认已经创建了名为 postgres 的超级用户。
  执行以下命令,登录控制台



sudo -u postgres psql postgres
  可以试试以下一些常用的控制台命令
  (这一部分的内容,基本是照搬阮兄的博文,我把操作逻辑贯通了一些,另做了少量补充,方便实验,原文在此)



# 查看 SQL 命令的解释,比如 \h select
\h

# 查看 PostgresSQL 命令列表
\?

# 列出所有数据库
\l

# 连接(使用)某个数据库
\c [database_name]

# 列出当前数据库的所有表格
\d

# 列出某一张表格的结构
\d [table_name]

# 列出所有用户
\du

# 打开文本编辑器
\e

# 列出当前数据库和连接的信息
\conninfo

# 退出控制台
\q
  创建名为 testdb 的数据库(注意:不要忘了命令末尾的分号!)



CREATE DATABASE testdb;
  再用执行 \l,确认数据库已经创建成功了
  连接到(使用)testdb 数据库



\c testdb
  查看连接信息,确认已经连接到 testdb 上了



\conninfo
  接下来就是数据库的基本操作了,其实就是各种 SQL 语句,例如:



# 创建新表(执行后,用 \d 可以看到当前数据库的表格列表中,出现了 user_tb)
CREATE TABLE user_tb(name VARCHAR(20), signup_date DATE);
  
# 插入数据
INSERT INTO user_tb(name, signup_date) VALUES('张三', '2017-08-03');
  
# 选择记录
SELECT * FROM user_tb;
  
# 更新数据
UPDATE user_tb set name = '李四' WHERE name = '张三';
  
# 删除记录
DELETE FROM user_tb WHERE name = '李四';
  
# 添加栏位(使用 \d user_tb 查看 SQL 执行前后,表结构的变化)
ALTER TABLE user_tb ADD email VARCHAR(40);
  
# 更新结构
ALTER TABLE user_tb ALTER COLUMN signup_date SET NOT NULL;
  
# 更名栏位
ALTER TABLE user_tb RENAME COLUMN signup_date TO signup;
  
# 删除栏位
ALTER TABLE user_tb DROP COLUMN email;
  
# 表格更名
ALTER TABLE user_tb RENAME TO user_dt_new;
  
# 删除表格
DROP TABLE IF EXISTS user_dt_new;
  三、创建用户 & 启用密码登录 & shell 命令
  真正我们在产品中不会直接使用默认的 postgres 用户,而是自己创建一个用户。
  有两种操作方法:


  • 进入 PostgresSQL 的控制台操作
  • 使用 PostgresSQL 提供的 shell 命令
  第二部分,使用的是控制台操作,这一部分,我们要试试 shell 命令
  创建名为 dbuser 的用户并设置密码



sudo -u postgres createuser dbuser -P
  创建名为 mydb 的数据库,并设置其所有者为我们新创建的用户 dbuser



sudo -u postgres createdb -O dbuser mydb
  这时候,如果我们尝试用新创建的用户 dubser 登录数据库 mydb



psql -U dbuser -d mydb -h localhost
  会遇到下面的错误



psql: FATAL: Ident authentication failed for user "dbuser"
  这是因为 PostgresSQL 默认没有启用密码登录,所以我们要先修改配置启用之
  打开配置文件



sudo vim /var/lib/pgsql/data/pg_hba.conf
  找到下面这两行



host    all    all    127.0.0.1/32    ident
host    all    all    ::1/128         ident
  将 ident 改为 md5



host    all    all    127.0.0.1/32    md5
host    all    all    ::1/128         md5
  保存配置文件后,PostgresSQL



sudo systemctl restart postgresql
  接下来,我们就可以用新创建的用户 dbuser 愉快地登录数据库啦



psql -U dbuser -d mydb -h localhost
  注意 -h localhost 不能省略,否则 PostgresSQL 还会走 ident 的验证,会出现下面的错误



psql: FATAL: Peer authentication failed for user "dbuser"
  四、允许远程访问(连接)
  PostgresSQL 默认是不允许远程访问的,如果我们想要在别的机器上访问数据库,还需要做一些设置。
  打开 postgresql.conf 文件



sudo vim /var/lib/pgsql/data/postgresql.conf
  加入下面一行配置,表示允许来自任意 IP 的连接请求



listen_addresses = '*'
  打开 pg_hba.conf 文件



sudo vim /var/lib/pgsql/data/pg_hba.conf
  加入下面一行配置,表示对任意 IP 访问进行密码验证



host    all    all    0.0.0.0/0    md5
  最后,重启 PostgreSQL 使配置生效



sudo systemctl restart postgresql
  现在就可以远程访问 PostgreSQL 数据库啦
  【原文链接】http://www.ipaomi.com/2017/08/03/centos-7-3-安装配置-postgresql-9-x/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407218-1-1.html 上篇帖子: CentOS 7 YUM 安装 LNMP 环境 下篇帖子: 在虚拟机(vmware)上安装CentOS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表