1、使用CREATE DATABASE
该命令将创建一个数据库PostgreSQL的shell提示符,但你应该有适当的权限来创建数据库。默认情况下,创建新的数据库将通过克隆标准系统数据库template1。
语法:
CREATE DATABASE语句的基本语法如下:
CREATE DATABASE dbname;其中dbname是要创建的数据库的名称。
例子:
下面是一个简单的例子,这将创建testdb 在PostgreSQL模式:
postgres=# CREATE DATABASE testdb;
postgres-#
2、使用createdb的命令
PostgreSQL命令行可执行createdb是是SQL命令CREATE DATABASE一个包装器。此命令和SQL命令CREATE DATABASE之间唯一的区别是,前者可以直接在命令行中运行,它允许的注释被添加到数据库中,全部在一个命令。
语法:
createdb语法如下所示:
createdb [option] [dbname [description]]
参数
下表列出了参数及它们的描述。
参数名称 描述
dbname The name of a database to create
description Specifies a comment to be associated with the newly created database
options command-line arguments which createdb accepts
选项
下表列出了命令行参数CREATEDB接收:
选项 描述
-D tablespace Specifies the default tablespace for the database
-e Echo the commands that createdb generates and sends to the server
-E encoding Specifies the character encoding scheme to be used in this database
-l locale Specifies the locale to be used in this database
-T template Specifies the template database from which to build this database
--help Show help about dropdb command line arguments, and exit
-h host Specifies the host name of the machine on which the server is running
-p port Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections
-U username User name to connect as
-w Never issue a password prompt
-W Force createdb to prompt for a password before connecting to a database
打开命令提示符,然后去是PostgreSQL安装所在的目录。进入到bin目录,执行下面的命令创建一个数据库。
createdb -h localhost -p 5432 -U postgress testdb
password
上面的命令会提示Postgres的默认的PostgreSQL管理用户的密码,以便提供密码和继续创建新的数据库。
一旦创建数据库时可以使用上述方法,可以检查它在列表中的数据库使用l即反斜线el命令如下:
postgres-# l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
testdb | postgres | UTF8 | C | C |
(4 rows)
postgres-#
PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的 *** 作系统,包括Linux、Unix(AIX、BSD、HP-UX、SGIIRIX、MacOS、Solaris、Tru64)、WindowsOS。在这篇教程里,我们将学习如何在CentOS7/65/64server中建立PostgreSQL。1安装PostgreSQL首先根据你的服务器架构添加PostgreSQL库:对CentOS6x32bit:rpm-Uvhtcpfirewall-cmd--reload3访问PostgreSQL常用的命令提示符默认情况下数据库名和用户名都是postgres。切换至用户以执行相关 *** 作:su–postgres输入以下命令登陆:psql会有以下样例输出:psql(935)Type"help"forhelpPostgres=#可通过输入\q退出postgresql返回命令终端:4设置用户密码登陆至postgres命令提示符界面su–postgrespsql然后使用命令设置密码postgres=#\passwordpostgresEnternewpassword:Enteritagain:postgres=#\q输入命令以建立PostgreSQL系统管理工具postgres=#CREATEEXTENSIONadminpack;CREATEEXTENSION5创建用户和数据库例如:用户名:senthil密码:centos数据库名:mydb转到postgres用户su–postgres创建用户senthil$createusersenthil创建数据库$createdbmydb现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:$psqlpsql(935)Type"help"forhelppostgres=#alterusersenthilwithencryptedpassword'centos';ALTERROLEpostgres=#grantallprivilegesondatabasemydbtosenthil;GRANTpostgres=#6删除用户和数据库首先转到postgres界面su–postgres输入命令$dropdb删除用户名可输入$dropuser7配置PostgreSQL-MD5认证MD5认证需要客户端提供一个MD5-encrypted密码以便身份验证。你需要编辑/var/lib/pgsql/93/data/pg_hbaconf文件:vi/var/lib/pgsql/93/data/pg_hbaconf添加或修改的行如下:[]#TYPEDATABASEUSERADDRESSMETHOD#"local"isforUnixdomainsocketconnectionsonlylocalallallmd5#IPv4localconnections:hostallall127001/32md5hostallall19216810/24md5#IPv6localconnections:hostallall::1/128md5[]重启postgresql服务以应用更改在CentOS6x系统中servicepostgresql-93restart在CentOS7系统中systemctlrestartpostgresql-938配置PostgreSQL-ConfigureTCP/IP默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件/var/lib/pgsql/93/data/postgresqlconf可以允许连接:vi/var/lib/pgsql/93/data/postgresqlconf找到下面的行:[]#listen_addresses='localhost’[]#port=5432[]把两行都取消并设置为你的postgresql服务器IP地址或设置为“”监听所有客户端。如下所示:listen_addresses=''port=5432重启以应用更改在CentOS6x系统中:/etc/initd/postgresql-93restart在CentOS7系统中:systemctlrestartpostgresql-939使用phpPgAdmin管理PostgreSQLphpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQLRPM库。如果你没有添加PostgreSQL库,你可以添加EPEL库。可根据下面的链接在CentOS6x中建立EPEL库
在postgresqlconf中修改
listen_addresses = ''
在pg_hbaconf文件中添加
host all all 0000/0 md5
(md5连接需要密码登录,trust不需要密码)
PostgreSQL数据库服务器,就需要进行相应的配置。 配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hbaconf和postgresqlconf。 pg_hbaconf:配置对数据库的访问权限, postgresqlconf:配置PostgreSQL数据库服务器的相应的参数。 步骤: 1修改pg_hbaconf文件,配置用户的访问权限(#开头的行是注释内容): # TYPE DATABASE USER CIDR-ADDRESS METHOD # “local” is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127001/32 trust host all all 19216810/24 md5 # IPv6 local connections: host all all ::1/128 trust 其中,第7条是新添加的内容,表示允许网段19216810上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。 其中,数字24是子网掩码,表示允许19216810--1921681255的计算机访问! 2修改postgresqlconf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。 定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。 将行开头都#去掉,将行内容修改为listen_addresses=’‘来允许数据库服务器监听来自任何主机的连接请求 上面就是Linux设置PostgreSQL远程访问的方法介绍了,如果你不设置,则PostgreSQL默认只能范围本地,功能比较局限。
PostgreSQL是现在比较流行的数据库之一,这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。据我了解国内四大国产数据库,其中三个都是基于PostgreSQL开发的。并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL,不管是私用,商用,还是学术研究使用。本文只是简单介绍一下postgresql的安装和简单的使用,语法方面涉及的比较少,以方便新手上路为目的。
1系统环境和安装方法 ;
PostgreSQL的安装方法比较灵活,可以用源码包安装,也可以用您使用的发行版所带的软件包来安装,还可以采用在线安装……
11 系统环境:Ubuntu Linux 704 ;Fedora;Slackware;
12 安装;
Ubuntu下安装软件其实很简单,用新立得软件包管理器搜索psql便能查到postgresql-client-82(同时可以搜到81版本,哪一个都可以),选中-应用即可。或者在终端下输入
xiaop@localhost$ sudo apt-get install postgresql-82
Slackware下安装:请到 linuxpackagesnet 上查找您所用系统的对应版本,用pkginstall 来安装,或您安装slap-get 工具,在线自动安装;要用到root权限,可以通用sudo。关于su和sudo的参考;《Linux 系统中的超级权限的控制》 安装postgresql的软件包,可用下面的办法 ;
xiaop@localhost# pkginstall posttgz
或
xiaop@localhost# slapt-get --install postgresql-824
在Fedora中,您可以用软件包在线安装工具来安装注:这样就安装好了PostgreSQL 82了,该安装将自动创建一个缺省的数据库集群(pgsqldborg中的译法)“main”,且生成一个数据库超级用户postgres。
2 启动PostgreSQL 数据库服务器;
21 在流行Linux发行版的启动方法;
在Ubuntu系统中,服务器启动脚本放在 /etc/initd目录中,您可以用下面的方法来启动,对于Fedora和Gentoo 也是类似的;
xiaop@localhost~# /etc/initd/postgresql-82 start 注:启动;
xiaop@localhost~# /etc/initd/postgresql-82 restart 注:重启;
xiaop@localhost~# /etc/initd/postgresql-82 stop 注:停止;
xiaop@localhost~# /etc/initd/postgresql-82 status 注:查看状态;
在Slackware中,PostgreSQL的启动脚本放在 /etc/rcd目录中,如果您用从linuxpackagesnet 上下载的软件包或在线安装的软件包;
xiaop@localhost~# /etc/rcd/rcpostgres start
如果您用源码包编译安装,启动PostgreSQL,请查看PostgreSQL官方文档;
22 关于 PostgreSQL启动和存储目录;
启动PostgreSQL服务器时,一般是以postgres 用户来启动的,自编译安装的除外;对于数据库的存储一般是放在/var/lib中的相关目录,比如 /var/lib/pgsql或 /var/lib/postgresql/82/main/ 目录等;不同的发行版可能不太一样,不过还是大同小异,您可以通过修改数据存储位置把数据库存在其它地方;
3创建用户
添加用户命令格式。
createuser 是 SQL 命令 CREATE USER的封装。
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名
参数说明:
[-a]:允许创建其他用户,相当于创建一个超级用户;
[-A]:不允许此用户创建其他用户;
[-d]:允许此用户创建数据库;
[-D]:不允许此用户创建数据库;
[-e]:将执行过程显示到Shell上;
[-P]:创建用户时,同时设置密码;
[-h 主机名]:为某个主机上的Postgres创建用户;
[-p port]:与-h参数一同使用,指定主机的端口。
31添加用户;
311不带参数的创建用户;
xiaop@localhost~$ createuser testuser
Shall the new user be allowed to create databases (y/n) n --------是否可以创建数据库:否
Shall the new user be allowed to create more new users (y/n) n ---------是否可以创建新用户:否
CREATE USER
注:不带参数创建用户时,Postgres会询问此用户的权限,上面的例子创建了一个普通用户;
312 为指定的主机和端口上创建用户 ;
xiaop@localhost~$ createuser -h 172281851 -p 5000 -D -A -e testuser
CREATE USER joe NOCREATEDB NOCREATEUSER;
CREATE USER
注:这个命令为主机172281851的5000端口创建用户testuser, 此用户不可以创建数据库和其他用户。
313创建超级用户;
xiaop@localhost~$ createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER joe PASSWORD 'testuser' CREATEDB CREATEUSER;
CREATE USER
注:这个命令在本地创建一个超级用户(-a),可以创建数据库(-d), 同时要求设置密码。
32 删除用户:
命令:dropuser [-i] [-h] [-p] [-e] 用户名 参数说明:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
321 删除本地的Postgres用户;
xiaop@localhost~$ dropuser testuser
DROP USER
322 删除远程Postgres服务器上的用户;
xiaop@localhost~$ dropuser -p 5000 -h 172281851 -i -e testuser
User "testuser" and any owned databases will be permanently deleted
Are you sure (y/n) y
DROP USER "testuser"
DROP USER
注:此命令删除主机172281851(-h)的5000端口(-p)的用户testuser,并且需要确认(-i);
4 创建和删除数据库;
41创建数据库
看看您能否访问数据库服务器的第一个例子就是试着创建一个数据库;
要创建一个新的数据库,在我们这个例子里叫 mydb,您可以使用下面的命令:
xiaop@localhost~$ createdb mydb
它应该生成下面这样的响应:
CREATE DATABASE
如果这样,那么这一步就成功了,如果您看到类似下面这样的信息
createdb: command not found
那么就是PostgreSQL没有安装好,要么是就根本没装上;
您还可以用其它名字创建数据库。 PostgreSQL 允许您在一个节点上创建任意数量的数据库。 数据库名必须是以字母开头并且小于 63 个字符长。 一个方便的做法是创建和您当前用户名同名的数据库。 许多工具假设该数据库名为缺省数据库名,所以这样可以节省您的敲键。要创建这样的数据库,只需要键入 :
xiaop@localhost~$ createdb
你的安装命令不完整,少了一个 install ,
如果是安装PostgreSQL客户端:sudo apt-get install postgresql-client
如果是安装PostgreSQL服务器:sudo apt-get install postgresql
正常情况下,安装完成后,PostgreSQL服务器会自动在本机的5432端口开启。
如果还想安装图形管理界面,可以运行这个命令:sudo apt-get install pgadmin3
更多关于PostgreSQL的用法,楼主可以百度《Linux就该这么学》,搜索关键字可以获得相应的教程。
以上就是关于postgresql 创建数据库问题全部的内容,包括:postgresql 创建数据库问题、如何在CentOS 7/6.5/6.4 下安装PostgreSQL 9.3 与 phpPgAdmin、linux下安装了postgresql数据库在win7系统下用pgadmin登录 提示访问数据库被拒绝等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)