我正在尝试从命令行创建数据库。我的操作系统是centos,postgres版本是10.9。
sudo -u postgres psql createdb test
Password for user test:
为什么要按用户问我?
我正在尝试从命令行创建数据库。我的操作系统是centos,postgres版本是10.9。
sudo -u postgres psql createdb test
Password for user test:
为什么要按用户问我?
Answers:
将用户更改为postgres:
su - postgres
为Postgres创建用户
$ 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;
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对在您的OS上运行的整个PostgreSQL实例具有完全的超级管理员访问权限。
sudo -u postgres psql
上面的命令使您可以在admin模式下使用psql命令行界面。
建立使用者
sudo -u postgres createuser <username>
创建数据库
sudo -u postgres createdb <dbname>
注意:<>不得在编写命令时使用,它们仅用于表示变量