安装 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 中,您可以使用 SQL 命令来执行各种数据库管理任务。以下是一些常用的命令示例:
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