CentOS 7 安装 PostgreSQL 11
PostgreSQL 官方网站
https://www.postgresql.org
PostgreSQL for Red Hat family
https://www.postgresql.org/download/linux/redhat/
进入页面后,选择版本11,CentOS7,x86_64。
即:PostgreSQL 11 for CentOS7 x86_64。
选择好后下面会出现安装命令:
#安装RPM仓库: yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm #安装客户端包: yum install postgresql11 #安装服务器包: yum install postgresql11-server #初始化并运行数据库: /usr/pgsql-11/bin/postgresql-11-setup initdb systemctl enable postgresql-11 systemctl start postgresql-11
至此PostgreSQL 11已经安装好,接下来进行配置(部分为需要远程连接时的设置)。
postgresql在安装时默认添加用户postgres。
这里先修改postgres密码,一步步键入:
su - postgres psql ALTER USER postgres WITH PASSWORD '密码'; \q exit
这样就修改好了。
部分其它命令:
\l #列出所有库 \du #列出所有用户 \d #列出库下所有表
在CentOS上,默认的PostgreSQL数据目录是/var/lib/pgsql/版本号/data
PostgreSQL的配置文件就在这个目录下/var/lib/pgsql/版本号/data/postgresql.conf,还有一个配置文件也需要稍加关注,那就是访问控制配置文件/var/lib/pgsql/版本号/data/pg_hba.conf
设置postgresql.conf
vi /var/lib/pgsql/11/data/postgresql.conf
将 #listen_addresses = 'localhost' 前的#号去掉,然后将后面的localhost改为*,任意主机可连接,否则仅本机。
然后将 #port = 5432 前的#去掉,设置端口,默认5432,可以改其它端口。
最后再将 #password_encryption = md5 前面的#号去掉,设置md5加密。
保存退出。
设置pg_hba.conf,设置可远程访问。
vi /var/lib/pgsql/11/data/pg_hba.conf
将最后三行加#标注掉。
#local replication all peer #host replication all 127.0.0.1/32 ident #host replication all ::1/128 ident
文件最下面添加:
host all all 0.0.0.0/0 md5
重启,使配置文件生效。
systemctl restart postgresql-11
Firewall开启端口:
firewall-cmd --permanent --add-service=postgresql systemctl reload firewalld
远程管理可以使用pgAdmin。
https://www.postgresql.org
修改数据库路径:
假设放在/home/pgsqldata/目录下
mkdir /home/pgsqldata
关闭pgsql
systemctl stop postgresql-11
修改配置文件
vi /var/lib/pgsql/11/data/postgresql.conf
data_directory = '/home/pgsqldata'
复制原数据库文件
cp -rf /var/lib/pgsql/11/data/* /home/pgsqldata/
修改权限
chown -R postgres:postgres /home/pgsqldata/ chmod -R 700 /home/pgsqldata/
重新开起数据库
systemctl start postgresql-11
--------------灰色区间内一般不需要--------------
修改启动文件
vi /usr/lib/systemd/system/postgresql-11.service
Environment=PGDATA=/home/pgsqldata/
重新开起数据库
systemctl daemon-reload //重新加载systemd配置文件。
systemctl start postgresql-11 //开启pgsql。
--------------灰色区间内一般不需要--------------
#新建数据库如遇到
soure database "template1" is being accessed by other users //template1模板正在被人连接
#进行以下操作:
su - postgres psql select pg_terminate_backend(pid) from pg_stat_activity where DATNAME = 'template1';
数据库操作:
su - postgres #有密码时需要输入密码。 psql
创建数据库
CREATE DATABASE testdb;
创建用户
CREATE USER testuser CREATEDB LOGIN PASSWORD 'testpassword';
将testdb所有权限赋给用户testuser
GRANT ALL ON DATABASE testdb TO testuser;
删除数据库
drop database testdb;
删除用户
drop role testuser;
参考博文:https://blog.csdn.net/rudy5348/article/details/79299162
- 上一篇: OpenWrt利用6plat部署IPv6环境
- 下一篇: CentOS7 安装 PHP + NGINX
评论已关闭