gpt4 book ai didi

mysql - 在 R 中使用 sqldf - 无法指定正确的用户名

转载 作者:行者123 更新时间:2023-11-29 04:01:00 25 4
gpt4 key购买 nike

我只是为了好玩下载了名为 sqldfR 包,但到目前为止还不能正确运行它。当我尝试使用 iris 数据集进行一些查询时:

sqldf("select * from iris limit 5")

错误发生在 mysqlNewConnection(drv, ...) 中说 Error :
RS-DBI 驱动程序:(无法连接到数据库:错误:用户“myUserName”@“localhost”的访问被拒绝(使用密码:NO)
)
!dbPreExists 中的错误:参数类型无效

所以我打开了它的帮助文档,然后运行以下查询:

sqldf("select * from iris limit 5", user="myUser")

错误消息与上面相同,这意味着我未能正确指定我的 user 参数,因为错误消息没有更改为 Access denied for user 'myUser'@'localhost').

那么如何修复它并正确运行它呢?

供您引用,当我使用 RMySQL 时,我使用以下参数来建立连接。

con <- dbConnect(dbDriver("MySQL"),username="myUser",password="myPass",host="myHost",unix.sock="/tmp/mysql.sock",dbname="myDB")

我在 OS X 10.9.1 上使用通过自制软件安装的 MySQL 5.6,以及 R 版本 3.0.2 和 sqldf 版本 0.4-6。

谢谢。

最佳答案

我首先要确保 sqldf 与 SQLLite 一起工作。

head(sqldf("select * from iris",drv='SQLite'))

接下来,我强​​烈建议您始终使用 drv= 参数或显式设置 sqldf.driver 变量。依赖 library(..) 调用的顺序可能会导致以后出现错误。

如果您正在做一些简单的事情,您可以使用 SQLLite,因为它速度快且依赖性低(因此,例如,如果您移动代码,则不必安装 MySQL)。如果您正在使用 Dates,SQLLite 不是很好,因此您可能想要使用 MySQL。如评论和 ?sqldf 底部的注释中所述,您需要为 mysql 设置一个带有 [Client] 部分的 my.cnf,以便包括 sqldf 在内的所有客户端都使用特定的登录名。还要确保 dbname 设置如下:

options(sqldf.driver = "RMySQL")
options(RMySQL.dbname = "rtest")
head(sqldf("select * from iris"))

我还没有找到一个可靠的方法来使用没有 my.cnf 的 MySQL。对 sqldf 使用显式连接对我也不起作用。我认为 PostreSQL 更好,因为您可以根据文档从 R 内部设置用户名等。

关于mysql - 在 R 中使用 sqldf - 无法指定正确的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20855053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com