【发布时间】:2022-04-03 17:46:38
【问题描述】:
我正在尝试从命令行创建数据库。 我的操作系统是centos,postgres版本是10.9。
sudo -u postgres psql createdb test
Password for user test:
为什么用户要问我?
【问题讨论】:
标签: postgresql
我正在尝试从命令行创建数据库。 我的操作系统是centos,postgres版本是10.9。
sudo -u postgres psql createdb test
Password for user test:
为什么用户要问我?
【问题讨论】:
标签: postgresql
将用户更改为 postgres :
su - postgres
为 Postgres 创建用户(在 shell 中,NOT 使用 psql)
$ createuser testuser
创建数据库(相同)
$ createdb testdb
访问 postgres Shell
psql ( enter the password for postgressql)
为 postgres 用户提供权限
$ alter user testuser with encrypted password 'qwerty';
$ grant all privileges on database testdb to testuser;
【讨论】:
create user testuser; create database testdb;
试试:
sudo -u postgres psql -c 'create database test;'
【讨论】:
sudo -u postgres psql -c 'grant all privileges on database test to username;'
psql -c 'create database test;'
createdb 是一个命令行实用程序,您可以从 bash 而不是从 psql 运行它。要从 psql 创建数据库,请使用 create database 语句,如下所示:
create database [databasename];
注意:请务必始终以 ; 结束您的 SQL 语句
【讨论】:
;结尾
CREATE DATABASE FOO 实际上会创建名为foo 的数据库。我花了大约 5 分钟才弄清楚为什么“数据库不存在”。见:stackoverflow.com/questions/43111996/…
正如一些答案所指出的,createdb 是一个可用于创建数据库的命令行实用程序。
假设您有一个名为dbuser 的用户,可以使用以下命令创建数据库并提供对dbuser 的访问权限:
createdb -h localhost -p 5432 -U dbuser testdb
将localhost 替换为正确的数据库主机名,将5432 替换为正确的数据库端口,将testdb 替换为您要创建的数据库名称。
现在可以使用psql 连接到这个新创建的数据库:
psql -h localhost -p 5432 -U dbuser -d testdb
使用createdb 和psql 版本9.4.15 测试。
【讨论】:
作为 Postgres 的默认配置,创建了一个名为 postgres 的用户,并且用户 postgres 拥有对在您的操作系统上运行的整个 PostgreSQL 实例的完全超级管理员访问权限。 p>
sudo -u postgres psql
上面的命令让你在管理员模式下获得 psql 命令行界面。
创建用户
sudo -u postgres createuser <username>
创建数据库
sudo -u postgres createdb <dbname>
注意: 不能在编写命令时使用,它们仅用于表示变量
【讨论】:
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB
【讨论】:
PostgreSQL Create Database - 在 Postgres 中创建数据库的步骤。
su - postgres
bash-4.1$ psql psql (12.1) 键入“帮助”以获得帮助。 postgres=#
创建数据库数据库名称;
【讨论】:
; 字符!输入它很重要!验证数据库确实是使用\l 创建的
使用单个命令行:
su -c "createuser dbuser;createdb -h localhost -p 5432 -E UTF8 -O dbuser dbname;" - postgres
【讨论】:
如果您使用的是 pgAdmin:
在查询编辑器中你可以这样尝试:
CREATE DATABASE <databasename>
WITH
OWNER = <dbowner>
ENCODING = <encoding>
CONNECTION LIMIT = <numberofsimulaneousconnections>;
sn-p 示例:
CREATE DATABASE twitterdb
WITH
OWNER = postgres
ENCODING = 'UTF8'
CONNECTION LIMIT = -1;
【讨论】: