我RMySQL用来查询数据库.
我用了
df <- fetch(dbSendQuery(con, "SELECT some_col from some_table"))
并收到这条消息:
Error in fetch(dbSendQuery(con, "SELECT some_col from some_table")) :
error in evaluating the argument 'res' in selecting a method for function 'fetch': Error in .local(conn, statement, ...) :
connection with pending rows, close resultSet before continuing
Run Code Online (Sandbox Code Playgroud)
奇怪的df是,实际上是创造了; 500 obs. of 1 variables它确实让我回到了我对这500个人的预期.
该表some_table有292,000行,对于R来说应该不是问题.
我在我的模式中尝试了各种其他表(例如
some_other_table),并得到了相同的结果.所以它似乎与fetch功能本身有关.
dbGetQuery,并dbFetch没有成功. 这个错误是什么意思,我怎样才能获得表中的所有行?
跟进
我发现我可以通过使用来啜饮整张桌子
dbReadTable(con, 'some_table')
我想使用MySQL数据库,dplyr而无需将我的数据库密码存储在平面文本R代码中.因此,我更喜欢引用我的.my.cnf文件,但由于src_mysql具有主机,用户和密码的默认参数,我可以找到的唯一方法是通过相当优雅:
test_db <- src_mysql("test",
default.file=path.expand("~/.my.cnf"),
host=NULL,
user=NULL,
password=NULL)
Run Code Online (Sandbox Code Playgroud)
是否有一种不那么冗长的方式从dplyr存储凭证连接到MySQL数据库?
我正在尝试从 R 连接到 MySQL。我在我的机器上安装了“8.0.11 MySQL Community Server - GPL”。在 R studio 中,我已经安装了 RMySQL 库。
当我发出命令时:
con = dbConnect(RMySQL::MySQL(),user="root", password = "password", dbname="test")
Run Code Online (Sandbox Code Playgroud)
我不断收到错误:
.local(drv, ...) 中的错误:无法连接到数据库:错误:未知数据库“测试”
我不知道为什么它不断出现这个错误。有什么建议?
我需要连接两个表,其中我想要使用的公共列ID在每个表中具有不同的名称.这两个表有一个"false"公共列名,当dplyr采用默认值并加入列"id"时,该名称不起作用.
以下是此问题涉及的一些代码
library(dplyr)
library(RMySQL)
SDB <- src_mysql(host = "localhost", user = "foo", dbname = "bar", password = getPassword())
# Then reference a tbl within that src
administrators <- tbl(SDB, "administrators")
members <- tbl(SDB, "members")
Run Code Online (Sandbox Code Playgroud)
这里有3次尝试 - 都失败了 - 传递成员方的公共列是"id"的信息,而在管理员方面,它是"idmember":
sqlq <- semi_join(members,administrators, by=c("id","idmember"))
sqlq <- inner_join(members,administrators, by= "id.x = idmember.y")
sqlq <- semi_join(members,administrators, by.x = id, by.y = idmember)
Run Code Online (Sandbox Code Playgroud)
这是我得到的各种错误消息的示例:
mysqlExecStatement(conn,statement,...)出错:RS-DBI驱动程序:(无法运行语句:'where子句'中的未知列'_LEFT.idmember')
我在那里看到的例子涉及R侧的数据表和数据帧.我的问题是关于dplyr如何将"by"语句发送到SQL引擎.
我们有一个数据库,几个列的类型为bit。使用RMySQL软件包查询它们时,将返回不正确的结果。要重现,请在SQL提示符下:
CREATE TABLE suppliers
( aId varchar(10) not null,
aBit bit not null
);
INSERT INTO suppliers (aId, aBit) VALUES ("First", 0);
INSERT INTO suppliers (aId, aBit) VALUES ("Second", 1);
INSERT INTO suppliers (aId, aBit) VALUES ("Third", 0);
INSERT INTO suppliers (aID, aBit) VALUES ("Fourth", 1);
Run Code Online (Sandbox Code Playgroud)
然后,我可以运行:
select * from suppliers
Run Code Online (Sandbox Code Playgroud)
我得到:
+--------+------+
| aId | aBit |
+--------+------+
| First | |
| Second | ? |
| Third | |
| Fourth | ? |
+--------+------+
4 rows …Run Code Online (Sandbox Code Playgroud) 我正在尝试连接到远程可公开访问的MySQL服务器EnsEMBL公共服务器RMySQL,但是当我尝试列出表时,会发生错误:
library(RMySQL)
mydb = dbConnect(MySQL(),
user = 'anonymous',
port = 5306,
host = 'asiadb.ensembl.org')
dbListTables(mydb)
Error in .local(conn, statement, ...) :
could not run statement: No database selected
Run Code Online (Sandbox Code Playgroud)
有没有办法找出这个名字?或者我是否完全犯了一个完全不同的错误?
使用RMySQL我想将数据从数据库加载到R中的数据帧.为此,我使用以下代码:
Rconnectdb:
con <- dbConnect(MySQL(),
user="root", password="password",
dbname="prediction", host="localhost")
Run Code Online (Sandbox Code Playgroud)
主要代码
library(RMySQL)
source("Rconnectdb") #load the database connection
query = "select received,isRefound from message" #specify query
rs=dbGetQuery(con,query) #resultset
dataset <- fetch(rs, n=-1) #fill dataset with all rows of the resultset
dbClearResult(rs) #clear resultset
Run Code Online (Sandbox Code Playgroud)
执行此操作我收到以下错误
函数错误(classes,fdef,mtable):无法找到函数"fetch"的继承方法,签名"data.frame","numeric"
有任何想法吗?
我尝试安装Mysql包(MAC OS)时出现以下错误
install.packages('RMySQL')
package ‘RMySQL’ is available as a source package but not as a binary
Warning in install.packages :
package ‘RMySQL’ is not available (for R version 3.1.0)
Run Code Online (Sandbox Code Playgroud)
我不确定我需要设置什么才能使其工作.
我有一个数据框,其中包含“ Quarter”列,其值类似于“ 16/17 Q1”,“ 16/17 Q2” ...和“ Vendor”,其值诸如“ a”,“ b”...。
我正在尝试使用以下方式将数据框写入数据库
query <- paste("INSERT INTO cc_demo (Quarter,Vendor) VALUES(dd$FY_QUARTER,dd$VENDOR.x)")
Run Code Online (Sandbox Code Playgroud)
但是它抛出错误:
Error in .local(conn, statement, ...) :
Run Code Online (Sandbox Code Playgroud)
无法运行语句:“字段列表”中的未知列“ dd $ FY_QUARTER”
我是Rmysql的新手,请提供一些解决方案以编写整个数据帧?
由于RMySQL包的二进制文件不可用,我无法在Windows上安装它.
我抬头看了网.我找到了这个链接.http://www.ahschulz.de/2013/07/23/installing-rmysql-under-windows/comment-page-1/#comment-3123
我按照说明操作,但是我收到了错误.
这是我得到的最终输出
>install.packages('RMySQL',type='source')
Run Code Online (Sandbox Code Playgroud)
将软件包安装到'C:/Users/admin/Documents/R/win-library/3.0'(未指定'lib'),同时安装依赖项'DBI'
试图URL ' http://cran.rstudio.com/src/contrib/DBI_0.2-7.tar.gz '内容类型'应用程序/ x-gzip的'长度194699个字节(190 KB)打开URL下载190 KB
尝试网址' http://cran.rstudio.com/src/contrib/RMySQL_0.9-3.tar.gz '内容类型'application/x-gzip'长度165363字节(161 Kb)已打开网址下载161 Kb
安装源包'DBI'...包'DBI'成功解压缩并且MD5求和已检查R inst准备包延迟加载从包'DBI'中的包'base'创建'summary'的通用函数帮助安装帮助索引构建包如果安装的软件包可以加载arch,安装晕影测试的索引 - i386 arch - x64 DONE(DBI)
安装源包'RMySQL'...**包'RMySQL'成功解压缩并检查MD5总和检查$ MYSQL_HOME ... C:\ Program Files\MySQL\MySQL Server 5.6\cygwin警告:检测到MS-DOS样式路径: C:\ Program Preferred POSIX等效于:/ cygdrive/c/Program
CYGWIN环境变量选项"nodosfilewarning"将关闭此警告.有关POSIX路径的更多详细信息,请参阅用户指南:http: //cygwin.com/cygwin-ug-net/using.html#using-pathnames test:Files\MySQL\MySQL:unknown operand
**libs警告:这个包有一个非空的'configure.win'文件,因此只构建主体系结构
cygwin警告:检测到MS-DOS样式路径:C:/PROGRA~1/R/R-30~1.1/etc/x64/Makeconf首选POSIX等价物:/ cygdrive/c/PROGRA~1/R/R-30~ 1.1/etc/x64/Makeconf CYGWIN环境变量选项"nodosfilewarning"关闭此警告.有关POSIX路径的更多详细信息,请参阅用户指南:http: //cygwin.com/cygwin-ug-net/using.html#using-pathnames
gcc -m64 -I"C:/PROGRA~1/R/R-30~1.1/include"-DNDEBUG -I"C:\ Program Files\MySQL\MySQL Server 5.6 \"/ include -I"d:/ RCompile/CRANpkg/extralibs64/local/include"-O2 -Wall -std = gnu99 -mtune = core2 -c RS-DBI.c -o …