版本信息:
CentOS版本:CentOS Linux release 7.2.1511 (Core)
PostgreSQL版本: PostgreSQL 10.13, 64-bit
1.卸载PostgreSQL
检查pg是否已经安装,如果安装了可以通过rpm -ev xxx进行删除
rpm -qa | grep postgres
检查pg安装位置,之后手动删除文件夹
2.安装依赖
yum -y install libicu-50.2-4.el7_7.x86_64.rpm libicu-devel-50.2-4.el7_7.x86_64.rpm libicu-doc-50.2-4.el7_7.noarch.rpm
yum -y install libxslt-1.1.28-6.el7.x86_64.rpm libxslt-devel-1.1.28-6.el7.x86_64.rpm
3.安装postgresql的顺序
rpm -ivh postgresql10-libs-10.13-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql10-10.13-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql10-server-10.13-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql10-contrib-10.13-1PGDG.rhel7.x86_64.rpm
4.初始化数据库
/usr/pgsql-10/bin/postgresql-10-setup initdb
5.创建数据目录并赋权
mkdir -p /data/PostgreSQL/data
chmod 755 -R /data/PostgreSQL/data
chown postgres:postgres -R /data/PostgreSQL
6.修改Environment=PGDATA配置路径
vim /usr/lib/systemd/system/postgresql-10.service
Environment=PGDATA=/data/PostgreSQL/data
重启配置生效 systemctl daemon-reload
7.修改PGDATA配置
su postgres
vi ~/.bash_profile
PGDATA=/data/PostgreSQL/data
生效
source ~/.bash_profile
8.修改监听配置,确保所有人可以连
vim /var/lib/pgsql/10/data/postgresql.conf
vi /data/PostgreSQL/data/postgresql.conf
listen_addresses = '*'
9.初始化
/usr/pgsql-10/bin/postgresql-10-setup initdb
10.启动
systemctl start postgresql-10.service
开机启动
systemctl enable postgresql-10.service
关闭开机启动
systemctl disable postgresql-10.service
11.修改远程连接配置pg_hba.conf.
先停止服务
systemctl stop postgresql-10.service
在 IPv4 local connections中增加:
vi /data/PostgreSQL/data/pg_hba.conf
vi /var/lib/pgsql/10/data/pg_hba.conf
host all all 0.0.0.0/0 trust
修改完需要重启
systemctl restart postgresql-10.service
12.使用
su - postgres #注意这里postgers 前后都有空格
以postgres 用户进入系统
登录数据库命令:
psql -U postgres #会进入postgres用户的控制台
\l 查看有哪些数据库
\c postgresql 选择postgresql 这个数据库,会提示进入连接
然后就可以用select 等语句查询了
退出数据库
\q
创建库
create database test_demo;
切换库
\c test_demo
创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
INSERT INTO user_tbl(name, signup_date) VALUES('王五', '2021-10-01');
INSERT INTO user_tbl(name, signup_date) VALUES('周扒皮', '2008-01-06');
选择记录
SELECT * FROM user_tbl;
更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
删除表格
DROP TABLE IF EXISTS backup_tbl;
13.创建root用户,设置密码为123456
cd /usr/pgsql-10/bin
// 使用createuser创建用户,-s参数为超级用户
createuser root -s
// 然后给root添加密码,先连接数据库,然后添加密码,但要添加添加用户名,否则默认修改postgres的密码
psql
\password root
// 由于psql默认登陆同用户名数据库,所以我们再创建一个root数据库
create database root owner root;
// 退出psql并切换回root
\q
exit
注意:
1.创建表的时候,表名和字段名必须全小写,然后查询的时候不管全大写或全小写,或是Camel模式都不会报错。只要名称中有大写字母,或者全大写,查询时就必须保证大小写正确并用双引号包起来,否则就会报“XXX不存在”的错误:“... does not exist”
2.注意防火墙,确保5432端口可用
3.注意修改配置。先停用,修改完再启动。pg_hba.conf、postgresql.conf
参考:https://blog.csdn.net/weixin_30762363/article/details/116907767