Postgresql 从命令行创建数据库
我试图从命令行创建一个数据库。 我的操作系统是centos,postgres版本是10.9Postgresql 从命令行创建数据库,postgresql,Postgresql,我试图从命令行创建一个数据库。 我的操作系统是centos,postgres版本是10.9 sudo -u postgres psql createdb test Password for user test: 为什么按用户询问我?将用户更改为postgres: su - postgres 为Postgres创建用户 $ createuser testuser 创建数据库 $ createdb testdb 访问postgres Shell psql ( enter the passwo
sudo -u postgres psql createdb test
Password for user test:
为什么按用户询问我?将用户更改为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;
createdb
是一个命令行实用程序,可以从bash而不是从psql运行。要从psql创建数据库,请使用如下create database语句:
create database [databasename];
注意:确保SQL语句始终以结尾代码>尝试:
sudo -u postgres psql -c 'create database test;'
作为Postgres的默认配置,将创建一个名为Postgres的用户,并且该用户Postgres具有对操作系统上运行的整个PostgreSQL实例的完全超级管理员访问权限
sudo -u postgres psql
上面的命令在管理模式下获取psql命令行界面
创建用户
sudo -u postgres createuser <username>
sudo-u postgres createuser
创建数据库
sudo -u postgres createdb <dbname>
sudo-u postgres createdb
注意:<>在编写命令时不能使用,它们只是用来表示变量正如一些答案所指出的,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中创建数据库的步骤。
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB
使用postgres用户登录服务器。su-postgres
su - postgres
连接到postgresql数据库。
bash-4.1$psql
psql(12.1)
键入“帮助”以获取帮助。
博士后=#
执行下面的命令创建数据库。
创建数据库名称;
查看以下详细信息:
使用单个命令行:
su -c "createuser dbuser;createdb -h localhost -p 5432 -E UTF8 -O dbuser dbname;" - postgres
也不要忘记授予权限:sudo-u postgres psql-c'将数据库测试的所有权限授予username;'在mac上,它只是psql-c'createdatabasetest;'代码>重要提示:createuser和createdb在shell中运行,不使用psql。但是如果使用psql运行,正确的命令是:create user testuser;创建数据库testdb代码>加1的可能副本,用于提示以结尾代码>只是想说明Postgres将大写改为小写。所以createdatabasefoo
实际上会创建名为FOO
的数据库。我花了5分钟才弄明白为什么“数据库不存在”。请参阅:这是在我无法使用ssh连接的实例上创建数据库的正确方法。所有将“CREATE DB”作为-c param for remote psql实用程序运行的尝试都假定存在一个名为username的数据库。如果将“PGDB”更改为“PGDATABASE”并将其导出(或将其作为命令的前缀),则无需将其传递给命令,它将从环境中读取它们。
CREATE DATABASE database_name;
su -c "createuser dbuser;createdb -h localhost -p 5432 -E UTF8 -O dbuser dbname;" - postgres