我开始学习使用MySQL,更具体地说,我正在尝试学习如何连接并使其与Access和R交互。 我最近创建了一个将Access连接到R的odbc。我成功地使用R库来检索它并使用sql查询。所以我搬到了R + Mysql。 这开始了我的问题! 安装RODBC之后,我安装了RMySQL并尝试使用“ dbConnect”。这是我的代码:
con <- dbConnect(dbDriver("MySQL"), user = "root", password = "mypwd", dbname = "mydbname")
“ mypwd”是创建MySQL ODBC Unicode驱动程序时插入的密码,“ mydbname”是我连接的数据库名称。只是为了提供信息,我已经通过从Access和Mysql传输表测试了该odbc。因此,我的疑问仅与Mysql和R之间的连接有关。
所以,让我们看看运行上面的代码行时出现的错误:
Error in .local(drv, ...) :
Failed to connect to database: Error: Plugin caching_sha2_password could not be loaded
我已经阅读了其他有关更改首选身份验证插件的信息。 我找到此行代码作为解决方案:
ALTER USER user
IDENTIFIED WITH mysql_native_password
BY 'password';
所以....请告诉我是否应该将此代码行更改为:
ALTER USER root
IDENTIFIED WITH mysql_native_password
BY 'mypwd';
对吗?还是我完全错过了重点。 对不起,我的问题是,但正如我所说,我是一个新手。感谢您的耐心等候
答案 0 :(得分:0)
您的主机地址在哪里?
尝试类似这样的代码
con <- dbConnect(dbDriver("MySQL"), host="192.100.XX.XX",db="df", user="root", password="mypwd")
答案 1 :(得分:0)
好吧,看来我已经找到解决问题的方法。
我使用“ odbcConnect”代替了“ dbConnect”。这是我的工作代码:
channel <- odbcConnect("Myodbcname", uid="root")
df <- sqlQuery(channel, "SELECT * from mytable", as.is = TRUE)
“ Myodbcname”是我为DSN名称和DSN系统保存的名称。 因此,现在我可以在表上使用sql查询并对其进行处理了。
在这一点上,我需要了解函数“ odbcConnect”和“ dbConnect”之间的区别。因为如果我不需要后者,我暂时可以忽略。也许我必须打开一个新线程,并带有指向该线程的链接。不确定Stackoverflow希望我做什么。