在MacOS Catalina上安装和进行初始操作的方法是安装PostgreSQL

引入

由于毕业设计的关系,我正在制作一个Web应用程序。然而,我意识到租用的服务器不支持SQLite,于是我尝试安装PostgreSQL。由于文章零散且时间耗费巨大,我决定将此记录下来作为备忘录。

请注意

当写这个表格时,我考虑到了可能的错误和环境依赖问题,并经过多次尝试和错误纠正,最终确定了这个流程是正确的。请注意,在确认了我方修正后,请自行负责完成所有步骤。

如果您发现文章中有需要修改的地方,请在评论中告诉我,我将非常感激。

环境

MacOS Catallina 10.15
家酿 2.1.5
postgresql 11.5

安装

在这里,我们将使用Homebrew来进行安装。
如果尚未安装,请参考以下链接。

PostgreSQL的安装

$ brew install postgresql

随后,

$ brew link postgresql

我想要做这个,但可能在这附近会遇到下面的错误代码而感到困扰。

Linking /usr/local/Cellar/postgresql/11.5_1... 
Error: Could not symlink include/ecpg_config.h
/usr/local/include is not writable.

由于在/usr/local目录下没有写入权限,因此需要给予写入权限。※1

$ sudo chown -R $(whoami) /usr/local

因为是sudo,所以需要输入密码并执行。
重新进行链接。

$ brew link postgresql
Linking /usr/local/Cellar/postgresql/11.5_1... 392 symlinks created

链接成功。
之后进行Postgresql的后安装。

$ brew postinstall postgresql
==> Postinstalling postgresql
==> /usr/local/Cellar/postgresql/11.5_1/bin/initdb --locale=C -E UTF-8 /usr/local

Postgresql的安装已经完成。
最后,以UTF-8格式初始化数据库。

数据库初始化

$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "(ここにユーザーネーム)".
This user must also own the server process.

The database cluster will be initialized with locale "ja_JP.UTF-8".
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
The default text search configuration will be set to "simple".

Data page checksums are disabled.

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".

看起来出现了某种错误代码,但处理似乎已经完成了。
真的初始化成功了吗?我们启动并进行确认一下。

启动

$ brew services start postgresql

版本确认

$ psql -V
psql (PostgreSQL) 11.5

如果遇到”psql”命令找不到的错误,这表示Postgresql的路径没有设置正确,可以参考以下链接设置正确路径。※2

查看数据库列表

$ psql -l
                                 List of databases
   Name    |    Owner    | Encoding | Collate | Ctype |      Access privileges      
-----------+-------------+----------+---------+-------+-----------------------------
 postgres  | ユーザーネーム | UTF8     | C       | C     | 
 template0 | ユーザーネーム | UTF8     | C       | C     | =c/ユーザーネーム             +
           |             |          |         |       | ユーザーネーム=CTc/ユーザーネーム
 template1 | ユーザーネーム | UTF8     | C       | C     | =c/ユーザーネーム             +
           |             |          |         |       | ユーザーネーム=CTc/ユーザーネーム
(3 rows)

如果此时该文件被编码为UTF-8,并且成功初始化,则表示安装已完成。

请留意的要点。

※1:只需要一个选项的话,以下是中文的解释:

1. “※1”:只需要一个选项。

在其他博客上没有写过的一件事是,在我的环境中,虽然是使用sudo,但在赋予这个用户权限的阶段却无法成功授权,让我感到困惑。
经过调查得知,这是由于被称为SIP的内核安全保护机制的原因。

根据上述链接成功解除了SIP,并顺利进行了后续步骤。如果您在使用sudo命令时遇到困难,请尝试一下。

※2

这个在其他博客中几乎没有解释过,所以可能是与环境有关。可能本来当link命令通过时会自动添加,但在我的环境中必须手动安装。

顺便提一下,如果搜索”psql路径”,这篇Qiita文章会排在最前面。

在这个环境中,Postgresql的安装位置是 “/usr/local/pgsql/bin/”,但是如果是使用Homebrew安装的话,注意安装位置会变成 “/usr/local/cellar/postgresql/11.5_1/bin”。

bannerAds