[PostgreSQL10] 在EC2上的安装和初始设置
这是P&D Advent Calendar第16天的文章。
2018年只剩下半个月了。
就我个人而言,我非常渴望参加博多站的圣诞集市,简直是痛不欲生呀。
首先
由于将Rails5应用程序从Heroku迁移到AWS EC2时遇到了一些困难,所以我将它记录下来。
在Heroku上使用的是PostgreSQL10。
请留意以下事项
请确保在将数据库迁移到PostgreSQL10时,目标数据库的版本也必须是10.0以上。
PostgreSQL10在AmazonLinux中不受支持。
因此,请选择EC2的AMI为AmazonLinux2。
添加公式仓库
经历
本次我们将使用yum来进行安装。
如果你直接运行”yum install postgresql”的话会安装最新版本的PostgreSQL 9。
因此,你需要从PostgreSQL官方的yum仓库中安装。
我做过的事情
需要使用yum localinstall 命令将PostgreSQL官方存储库添加到Amazon Linux2中,根据上述说明。
# yum -y localinstall https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
为了节省在中途输入Yes/No等的麻烦,我会全部选择Yes进行安装。
确认包装
让我们查看一下 PostgreSQL10 在官方的 yum 资源库中提供的详细信息。
PostgreSQL10的相关套件是以postgresql10-为前缀的套件名称,而PostgreSQL 10服务器的套件名称是postgresql10-server。要查看详细信息,请使用yum info <套件名称>。
# yum info postgresql10-server
如果输出显示”Available Packages”,那就可以继续进行了!您还可以确认其他可用的版本等信息。
终于安装完成了。
好了,让我们继续进行安装吧。
我们将使用yum install来进行安装。
# yum -y install postgresql10-server
如果在执行上述命令后输出”Complete!”,那就可以了!对于那些想要试试走石桥的人,可以使用postgres –version来检查命令的可用性和版本。
# /usr/pgsql-10/bin/postgres --version
如果版本为10.6,只需输出”postgres (PostgreSQL) 10.6″就可以了。
数据库初始化
安装完成后,接下来是初始化数据库。我们可以使用postgresql-setup initdb来进行。
# /usr/pgsql-10/bin/postgresql-10-setup initdb
初始化数据库…如果输出OK,就OK了!
自动启动设定(服务化)
在服务器启动或重新启动时,应设置自动启动PostgreSQL,否则可能会发生很麻烦的问题(未来预知)。请使用systemctl enable命令指定postgresql-10。
systemctl enable postgresql-10
启动、停止、重新启动
这次我们将使用service指定postgresql-10进行操作。
开机
好了好了,终于是启动的时候了…
# sudo service postgresql-10 start
如果没有产生错误,启动就完成了!
不要再进行了。
# sudo service postgresql-10 stop
重新启动
# sudo service postgresql-10 restart
用户
一旦安装好PostgreSQL,将会创建一个管理员权限的用户“postgres”。默认状态下,密码尚未设置。
登录
既然已经启动了,让我们尝试使用“postgres”登录。登录需要使用psql。
# sudo -u postgres psql -U postgres
could not change directory to "/root"
psql (10.6)
Type "help" for help.
postgres=#
如果能达到上述的情况,那就是成功了!
您可以使用\q進行登出。
postgres=# \q
只要能做到这一步,这次就完美了!!辛苦了!!!
最后
我简单总结了关于之前提到的应用程序迁移的事情。
尝试处理PostgreSQL时,版本10.0及以上与低于此版本的引入方式存在相当大的差异,这让我感到相当震惊。
明年年初我计划在PosgreSQL的用户设置和Rails应用程序的引入方面,以及之前提到的应用程序迁移的全部内容都会在此详细介绍,如果您能稍微等待一下就好了。