创建data和log文件夹,用于存放数据和日志文件
初始化数据库:
init_db.bat:
E:/Programs/postgresql-15.8-1/bin/pg_ctl -D E:/Programs/postgresql-15.8-1/data initdb
执行后:
属于此数据库系统的文件宿主为用户 "Administrator".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "Chinese (Simplified)_People's Republic of China.936"进行初始化.
本地化隐含的编码 "GBK" 不允许作为服务器端的编码.
默认的数据库编码将采用 "UTF8" 作为代替.
initdb: could not find suitable text search configuration for locale "Chinese (Simplified)_People's Republic of China.936"
缺省的文本搜索配置将会被设置到"simple"
禁止为数据页生成校验和.
修复已存在目录 E:/Programs/postgresql-15.8-1/data 的权限 ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......windows
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
selecting default time zone ... Asia/Hong_Kong
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功
initdb: 警告: 为本地连接启用"trust"身份验证
你可以通过编辑 pg_hba.conf 更改或你下次
执行 initdb 时使用 -A或者--auth-local和--auth-host选项.
成功。您现在可以用下面的命令开启数据库服务器:
启动数据库:
start_psql.bat:
E:/Programs/postgresql-15.8-1/bin/pg_ctl -D E:/Programs/postgresql-15.8-1/data -l E:/Programs/postgresql-15.8-1/log/run.log start
停止数据库:
stop_psql.bat:
E:/Programs/postgresql-15.8-1/bin/pg_ctl -D E:/Programs/postgresql-15.8-1/data -l E:/Programs/postgresql-15.8-1/log/run.log stop
issue:
执行psql时报错了:
psql: 错误: 无法连接到服务器:FATAL: database "Administrator" does not exist
参考这个
我采用的是使用template1临时库来登录,然后创建新的超级用户root:
E:\pgsql\bin>psql template1
psql (12.3)
输入 "help" 来获取帮助信息.
template1=# create user root superuser;
CREATE ROLE
template1=# create database root;
CREATE DATABASE
template1=# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则
| Ctype |
存取权限
-----------+---------------+----------+-----------------------------------------
------------+-----------------------------------------------------+-------------
--------------------
postgres | Administrator | UTF8 | Chinese (Simplified)_People's Republic of China.936 | Chinese (Simplified)_People's Republic of China.936 |
root | Administrator | UTF8 | Chinese (Simplified)_People's Republic of China.936 | Chinese (Simplified)_People's Republic of China.936 |
template0 | Administrator | UTF8 | Chinese (Simplified)_People's Republic of China.936 | Chinese (Simplified)_People's Republic of China.936 | =c/Administrator +
| | |
| | Administrator=CTc/Administrator
template1 | Administrator | UTF8 | Chinese (Simplified)_People's Republic of China.936 | Chinese (Simplified)_People's Republic of China.936 | =c/Administrator +
| | |
| | Administrator=CTc/Administrator
(4 行记录)
-- More --
template1=# alter user root with password 'your_password';
ALTER ROLE
以后就用root来登录,psql -h localhost -U root -W
登录成功后,即可操作:
root=# \c root
用户 root 的口令:
您现在已经连接到数据库 "root",用户 "root".
root=# \c postgres
用户 root 的口令:
您现在已经连接到数据库 "postgres",用户 "root".
postgres=#
1、列举数据库:\l
2、选择数据库:\c 数据库名
3、查看该某个库中的所有表:\dt
4、切换数据库:\c interface
5、查看某个库中的某个表结构:\d 表名
6、查看某个库中某个表的记录:select * from apps limit 1;
7、显示字符集:\encoding
8、退出psgl:\q
查看每个库的大小:
select pg_database.datname as dbname,
pg_database_size(pg_database.datname) AS size1,
pg_size_pretty(pg_database_size(pg_database.datname)) as size2
from pg_database;
执行结果:
dbname | size1 | size2
-----------+---------+---------
postgres | 8102767 | 7913 kB
root | 8102767 | 7913 kB
template1 | 8102767 | 7913 kB
template0 | 7954947 | 7769 kB
(4 行记录)
查看每个表的大小:
select relname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_tables where schemaname='public' order by pg_relation_size(relid) desc;
pgadmin4使用:
运行pgadmin4后,默认左侧的Servers是空白的,需要在右侧点击"Add New Servers",
在弹出窗口的“Connection”中填入Host、Port、Maintenace Database、Username、Password等信息,点完成之后,pgadmin4左侧的Servers就出现了相应的数据库信息