在Windows上部署PostgreSQL以及使用R语言连接操作
2017-03-15 21:28
399 查看
在Windows上部署PostgreSQL
之前的开发工作,都是在Linux上完成的,而且昨晚以后鉴于没有保留文档,搞得我后来也不知道怎么重新部署数据库了,现在必须要在Windows开发出一个可以使用的数据库了。我的想法是,暂时还是按照老的办法来:建立一个PostgreSQL数据库。
设置好用户名密码什么的。
使用R语言往数据库里写入比较大的文件成为表格。
安装数据库没什么好说的,就是下载了最新的PostgreSQL无脑安装,我安装的是9.6版本,安装过程中,有一个需要设置密码的环节,指定的用户名是postgres,密码自己设定一下。这个用户是管理员用户,很重要,基本上一开始系统安装以后,你只有这个用户可以操作,我们需用它慢慢添加其他用户,然后建立数据库等等:
安装完毕以后,应该有两种以上办法设定建立数据库等等吧,pgAdmin是一种,直接使用命令行也是一种。
命令行操作数据库
我用管理员权限打开了cmder(就是一个windows CMD的升级版),目前我们的数据库里只有一个用户,就是管理员用户postgres,输入命令:psql -U postgres
然后可以看到登录:
用户 postgres 的口令: psql (9.6.2) 输入 "help" 来获取帮助信息. postgres=#
(我也不知道为什么出来这么多中文提示……有同学知道怎么把它们全部修改成英文的话麻烦告诉我。)
出现最后那一个
postgres=#就意味着可以操作数据库了。目前数据库里应该只有一个系统管理员:postgres,我们就是用它登录了。使用
\l命令可以查看目前存在的数据库,我也搞不懂为什么刚刚建立的数据库,就已经有三个数据库了。我本以为是空的。
另外,使用
\du命令可以查看所有的用户
这个结果还比较正常,只有一个用户,postgreSQL超级用户。下面我们要做的,就是建立一个数据库,并且建立一个用户,以后我们的网站啊或者其他东西,都通过这个用户名,去访问这个数据库实现。并且,还需要将数据都放在数据库里。
如果使用pgAdmin来做查看结果的话,应该是这样子的:
上述的两个红框,一个是postgres数据库,一个是postgres用户,正是我们刚才用命令行看到的东西。
我们继续使用命令行建立建立新用户:
joshua,以及一个数据库:
mydb。需要使用三行命令就够了:
CREATE USER joshua WITH PASSWORD '12345678';
第一行:上述命令创建了一个叫做joshua的数据库使用人员,它的属性是”user”,而不是“role”,意味着它是可以登录的人,不只是可以调用数据的人。
CREATE DATABASE mydb OWNER joshua;
第二行:创建一个叫做mydb的数据库,并且让数据库拥有人设置为joshua.
GRANT ALL PRIVILEGES ON DATABASE mydb to joshua;
第三行:将myDB的所有权限赋予joshua. (我也不知道有哪些权限……) 运行效果如下:
postgres=# CREATE USER joshua WITH PASSWORD '12345678'; CREATE ROLE postgres=# CREATE DATABASE myDB OWNER joshua; CREATE DATABASE postgres=# GRANT ALL PRIVILEGES ON DATABASE mydb to joshua; GRANT postgres=#
在PostgreSQL中,我们也可以看到一样的结果:
OK,到这一步,我们就可以使用joshua这个用户,随意地登录mydb这个数据库了,需要的仅仅是在网站程序中进行一些配置就好。
使用R语言连接数据库进行操作
我个人R语言比较好,所以比较希望能通过R语言连接数据库进行操作,以前我用R语言连接过mySQL进行数据读取。同样,我们可以使用R语言连接postgreSQL进行操作:首先当然是需要在Windows是安装R语言,我安装的是Microsoft open-R,微软宣称自己的R比常规的要好,我目前还没用出来,但是安装上去以后,和普通的R看上去没什么区别,如果想用RStudio一类的IDE也可以安装,能用就行。然后打开R,安装一个包叫做:
RPostgreSQL
连接方式超级简单,载入R包以后,一行就连上了:
library(RPostgreSQL) con <- dbConnect(PostgreSQL(), host="localhost", user= "joshua", password="12345678", dbname="mydb")
那个包提供了对于数据库的各种操作,增删改查都有。不过我一般都是处理好的数据直接一行命令上传数据库的,所以不太关注其他命令。下面假设我有一批数据,我要把它推送到数据库中,建立成一张表格,需要做的仅仅也是一行命令:
dbWriteTable(con, "MyData", MyData)
其中,后一个MyData是你的一个R对象,DataFrame或者Matrix都行吧。前一个就是一个名字而已,这个名字是你的MyData这一个数据库在数据库内的表的名字。
下面我用R语言中非常常用的鸢尾花数据做一下演示:
> data("iris") > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa > dbWriteTable(con, "iris", iris) [1] TRUE
通过dbWriteTable函数,整个iris数据就被上传到了postgreSQL中了,并且在其中自动建立了一个叫做iris的表格。我们可以使用命令行查一下:
在bash中,先按之前的命令,登录到postgres用户中,然后用它登录postgreSQL数据库,然后使用命令
\c my db连接mydb数据库:
postgres=# \c mydb; 您现在已经连接到数据库 "mydb",用户 "postgres". mydb=#
出现
mydb=#就意味着已经成功连接上了mydb数据库,然后使用命令
\d查看所有的表:
mydb=# \d 关联列表 架构模式 | 名称 | 类型 | 拥有者 ----------+------+--------+-------- public | iris | 数据表 | joshua (1 行记录)
可以看出,出现了一个叫做iris的表。我们可以使用最常用的SQL查询语句看一下表里的内容:
mydb=# select * from iris limit 6; row.names | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species -----------+--------------+-------------+--------------+-------------+--------- 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa 2 | 4.9 | 3 | 1.4 | 0.2 | setosa 3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa 4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa 5 | 5 | 3.6 | 1.4 | 0.2 | setosa 6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa (6 行记录)
可以看出,结果和之前是一样的。
同样,刷新一下pgAdmin也可以看出一样的结果:
OK,到目前为止,我们就已经能够成功在Windows上建立postgreSQL了,并且能够通过R语言方便地与其进行连接操作。
相关文章推荐
- 在Windows上使用终端模拟程序连接操作Linux以及上传下载文件
- windows下部署git,使用copssh连接
- 在windows上部署redis服务,以及使用jedis客户端。
- Windows下使用MySQL客户端连接MySQL服务器的操作
- PostGreSQL + PostGIS 在windows下安装以及与Arcgis的连接(离线安装)
- 随笔记:如何使用Python连接(/操作)Oracle数据库(Windows平台下)
- 使用perl连接和操作postgresql数据库
- 使用虚拟环境venv 部署,以及windows跟 liunx环境 的一些问题
- PostgreSql 使用postgis 存储地理空间信息操作以及jsonb操作示例
- windows下连接PostgreSQL操作
- 使用xinetd来管理rsync软件以及部署操作
- ADO.NET 用windows方式连接数据库以及简单的增,删,改,查询操作
- windows下连接PostgreSQL操作
- python下使用mysql.connector 安装以及连接数据库的操作
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
- 通过shell脚本批量部署ssh私钥认证以及批量操作工具pssh的简单使用
- 通过隧道连接内网的PostgreSQL以及跨域与部署方案
- R语言使用ODBC连接数据库PostgreSQL查询语句中含有""处理方法
- 在windows安装epics base,以及JCA的使用
- 使用 ClickOnce 部署 Windows 窗体应用程序