问题
最近需要从MySQL切换到PostgreSQL。我得在本地准备一个PostgreSQL。
步骤
使用brew安装postgresql16:
arch -arm64 brew install postgresql@16
启动postgresql16:
brew services start postgresql@16
配置postgresql环境变量,打开环境变量文件:
open ~/.zshrc
配置如下内容:
export PG_HOME=/opt/homebrew/opt/postgresql@16
export PATH=$PG_HOME/bin:$PATH
重载环境变量:
source ~/.zshrc
查看postgresql版本:
psql --version
查询数据库管理员用户名:
id -un
登录数据库:
psql -U <管理用户名> postgres
修改管理用户密码:
ALTER USER <管理用户名> PASSWORD '<密码>';
使用\q
退出psql客户端。查看登录设置配置文件:
sudo -u <管理员用户名> psql postgres -c "SHOW hba_file;"
结果:
hba_file
---------------------------------------------/opt/homebrew/var/postgresql@16/pg_hba.conf
(1 行记录)
打开pg_hba.conf
文件,设置需要使用密码方式登录postgresql,将trust
改成scram-sha-256
,如下图:
注意,这里的trust
是不需要验证用户就可以直接使用;passwords
是明文传用户密码给postgresql服务器;md5
和scram-sha-256
密码加密给postgresql服务器进行登录。
重启服务:
brew services restart postgresql@16
再次验证使用登录:
psql -U <管理员用户> postgres
总结
postgresql还是很简单的,只要需要注意postgresql默认表名和字段名是小写的,默认也不支持反引号(`)。需要注意下与mysql区别的这些注意点。还有就是写sql使用函数的时候,尽可能使用大家这几个数据库都支持的sql函数。
参考
- Download and configure PostgreSQL16 on MacOS