提问人:user3122861 提问时间:12/20/2013 最后编辑:Gavin Simpsonuser3122861 更新时间:11/9/2023 访问量:1223
使用 4.1.1 之前的身份验证协议通过 R 访问 MySQL
Access to MySQL with R using a pre 4.1.1 authentication protocol
问:
我需要访问MySQL远程服务器,我想使用R软件执行此操作。
我设置了连接参数,但无法访问。我使用以下代码:
drv <- dbDriver("MySQL")
library(RMySQL)
# open the connection using user, passsword, etc., as
con <- dbConnect(MySQL(), user="user", password="psw",
dbname="NameDB", host="webhosting", port=3306)
我收到这个错误:
Error in mysqlNewConnection(drv, ...) :
RS-DBI driver: (Failed to connect to database: Error: Connection using old (pre-4.1.1)
authentication protocol refused (client option 'secure_auth' enabled)
我尝试使用MySQL工作台连接到数据库,仅当我选择“使用旧的身份验证协议”选项时,它才能正常工作。 因此,我知道这是我需要在我的连接中激活的内容,也使用 R。但是,我不知道该怎么做!我试图禁用“secure_auth”,但 dbConnect 没有该参数。
如何更改授权?提前致谢!
P.s.:我无法升级服务器密码以使其与4.1.1之后的协议兼容。
答:
0赞
atomic77
6/22/2016
#1
您可能想尝试使用RJDBC连接到MySQL - 它将在后台与JDBC驱动程序连接,这显然将允许旧式身份验证。
0赞
user17714926
12/21/2021
#2
根据数据库的大小,您可以使用 MySQL Workbench 将远程数据库克隆到本地数据库。然后它只是一个本地连接,您可以禁用/控制其身份验证。
0赞
user22851124
11/9/2023
#3
要使用 4.1.1 之前的身份验证协议通过 R 连接到 MySQL,您需要向名为 的函数添加一个参数。此参数应设置为 TRUE 以启用旧的身份验证协议。dbConnect()
useLegacyAuth
drv <- dbDriver("MySQL")
library(RMySQL)
# open the connection using user, password, etc., as
con <- dbConnect(MySQL(), user="user", password="psw",
dbname="NameDB", host="webhosting", port=3306, useLegacyAuth=TRUE)
评论
con <- dbConnect("MySQL", user = "username", dbname = "DatabaseName", host = "192.168.1.4", password = "yourpassword")