在 PostgreSQL 中,您可以使用 SQL 命令来执行各种数据库管理任务。以下是一些常用的命令示例:
psql -U postgres
直接在 shell 中执行 psql 语句
psql -U postgres -c “CREATE USER username WITH PASSWORD 'password';”
CREATE USER username WITH PASSWORD 'password';
其中,username
是您要创建的用户名,password
是用户的密码。
ALTER USER username WITH PASSWORD 'newpassword';
其中,username
是要更改密码的用户的用户名,newpassword
是新密码。
DROP USER username;
其中,username
是要删除的用户的用户名。
CREATE DATABASE dbname;
其中,dbname
是您要创建的数据库名称。
DROP DATABASE dbname;
其中,dbname
是要删除的数据库名称。
GRANT ALL PRIVILEGES ON DATABASE dbname TO username;
其中,dbname
是数据库名称,username
是用户名称。您可以根据需要调整权限级别。
REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username;
同样,dbname
是数据库名称,username
是用户名称。
SELECT * FROM pg_user;
这将显示 PostgreSQL 中的所有用户列表。
SELECT datname FROM pg_database WHERE datistemplate = false;
这将返回一个包含所有非模板数据库名称的列表。在 PostgreSQL 中,模板数据库通常用于生成新数据库,因此通常不会显示在这个列表中。
这些是一些基本的数据库管理命令示例。您可以根据需要使用其他 PostgreSQL SQL 命令执行更多的管理任务。请注意,执行这些命令可能需要足够的权限。
CREATE DATABASE new_database WITH TEMPLATE original_database;
<username>
: 数据库用户名。<host>
: 数据库服务器的主机名(例如 localhost
)。<database_name>
: 需要导出的数据库名称。-F c
: 指定输出文件的格式为自定义(可选)。常见格式包括:
-F p
:纯文本格式(plain text)-F c
:自定义格式(custom)-F d
:目录格式(directory)-F t
:tar 格式<output_file.sql>
: 导出的文件路径和名称。pg_dump -U <username> -h <host> -d <database_name> -F c -f <output_file.sql>
pg_dump -U postgres -h localhost -d wiki -F c -f /path/to/backup/wiki_backup.sql
pg_dump -U postgres -h localhost -d wiki -F t -f D:\DockerServer\postgreSQL\backup\wiki.tar
<username>
: 数据库用户名。<host>
: 数据库服务器的主机名(例如 localhost
)。<database_name>
: 需要导入的目标数据库名称。-1
: 执行所有命令在一个事务中(可选)。<backup_file.sql>
: 导入的备份文件。pg_restore -U <username> -h <host> -d <database_name> -1 <backup_file.sql>
pg_restore -U postgres -h localhost -d wiki_restored -1 /path/to/backup/wiki_backup.sql
createdb -U postgres -h localhost wikidb
pg_restore -U postgres -h localhost -d wikidb -1 D:\DockerServer\postgreSQL\backup\wiki.tar
安装 PostgreSQL 并设置数据库在 CentOS 上通常涉及以下几个步骤:
以下是在 CentOS 上安装和设置 PostgreSQL 的简要步骤:
首先,使用以下命令安装 PostgreSQL 软件包:
sudo yum install postgresql-server postgresql-contrib
使用以下命令来初始化数据库并启动 PostgreSQL 服务:
sudo postgresql-setup initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql
默认情况下,PostgreSQL 安装后会创建一个名为 "postgres" 的超级用户。您可以使用此用户登录并创建其他数据库用户。首先切换到 "postgres" 用户:
sudo su - postgres
su - postgres
然后使用以下命令进入 PostgreSQL 的命令行界面:
psql
psql -U postgres
在 PostgreSQL 命令行界面下,使用以下命令创建一个新用户(将 your_user
替换为您希望的用户名):
CREATE USER your_user WITH PASSWORD 'your_password';
继续在 PostgreSQL 命令行界面下,使用以下命令创建一个数据库(将 your_database
替换为您希望的数据库名):
CREATE DATABASE your_database;
然后将该数据库的所有权授予新创建的用户:
GRANT ALL PRIVILEGES ON DATABASE your_database TO your_user;
退出 PostgreSQL 命令行界面:
\q
退出 "postgres" 用户的 shell:
exit
您可以使用以下命令验证 PostgreSQL 是否正常运行:
sudo systemctl status postgresql
至此,您已经完成在 CentOS 上安装和设置 PostgreSQL 的基本步骤。请注意,这里提供的用户名、密码、和数据库名称等值都是示例值,您应该根据实际情况进行替换。在实际生产环境中,请谨慎处理数据库用户密码和权限。
I had the same problem:
error: Database Connection Error: 28P01 undefined:undefined
I've solved it by modifying 86 line of file /var/lib/psql/data/pg_hba.conf
, changing ident
to md5
and then restarted database:
$ sudo systemctl restart postgresql
Additionally I've changed password in database:
$ sudo -u wikijs psql -d wiki
wiki=# \password wikijs
ALTER DATABASE wiki OWNER TO wikijs
After that I've successfully executed node server
.
https://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres
https://www.cybertec-postgresql.com/en/error-permission-denied-schema-public/
官方网站 PostgreSQL: Windows installers
初始化 postgreSQL,推荐使用powershell,相比cmd与linux下命令更接近,在开始菜单打开powershell,导航到 PostgreSQL 的安装目录,通常为 C:\Program Files\PostgreSQL\<version>\bin
,其中 <version>
是您安装的 PostgreSQL 版本号。
cd “C:\Program Files\PostgreSQL\16\bin”
初始化数据库,请将 "C:\path\to\data\directory"
替换为您希望存储 PostgreSQL 数据的目录的路径。默认情况下,它在 PostgreSQL 安装目录的 data
子目录中。
initdb -D "C:\path\to\data\directory"
initdb -D "C:\Program Files\PostgreSQL\16\data"
执行以下命令以安装 PostgreSQL 服务:在这个命令中,-N "PostgreSQL"
指定了服务的名称,您可以根据需要更改它。-U "NT AUTHORITY\NetworkService"
指定了服务运行时使用的用户。-D "C:\path\to\data\directory"
指定了数据目录的路径。
pg_ctl register -N "PostgreSQL" -U "NT AUTHORITY\NetworkService" -D "C:\path\to\data\directory"
pg_ctl register -N "PostgreSQL" -U "NT AUTHORITY\NetworkService" -D "C:\Program Files\PostgreSQL\16\data"
使用以下命令启动 PostgreSQL 服务,如果您在安装时选择了不同的服务名称,将 "PostgreSQL"
替换为您选择的名称。
net start PostgreSQL
可以使用以下命令检查 PostgreSQL 服务的状态。或者,您也可以在服务管理器(Services)中检查 PostgreSQL 服务是否已成功启动。
Get-Service postgresql-x64-16
停止服务
net stop postgresql
如果在powershell中执行以下命令没有反应,需要添加环境变量
psql --version
psql -V
右键我的电脑或者设置->关于->高级系统设置 -> 高级 -> 环境变量 -> Path -> 编辑 -> 新建
以超级用户 "postgres" 的身份连接到数据库服务器。根据您在安装时设置的密码,可能会要求您输入密码。
psql -U postgres
创建普通用户,连接到数据库服务器后,您可以使用以下命令创建一个新的数据库,将该数据库的权限给予用户:
CREATE USER your_user WITH PASSWORD "databaseUserPassword";
CREATE DATABASE databaseName;
GRANT ALL PRIVILEGES ON DATABASE databaseName TO databaseUser;
解决数据库连接异常问题可以使用以下命令
ALTER DATABASE databaseName OWNER TO databaseUser;
https://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres]
https://www.cybertec-postgresql.com/en/error-permission-denied-schema-public/
退出 PostgreSQL 命令行界面:
\q