使用4.1.1之前的身份验证协议使用R访问MySQL

o2g1uqev  于 2023-11-14  发布在  Mysql
关注(0)|答案(3)|浏览(117)

我需要访问一个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没有该参数。
如何更改授权?提前感谢!
注:我无法升级服务器密码,使其与后4.1.1协议兼容。

r6vfmomb

r6vfmomb1#

您可能想尝试使用RJDBC连接到MySQL-它将与隐藏的JDBC驱动程序连接,这显然将允许old-style authentication

wmtdaxz3

wmtdaxz32#

根据数据库的大小,您可以使用MySQL MySQL将远程数据库克隆到本地数据库。然后它只是一个本地连接,您可以禁用/控制其身份验证。

rta7y2nd

rta7y2nd3#

要使用4.1.1之前的认证协议连接到MySQL,需要在dbConnect()函数中添加一个名为useLegacyAuth的参数。该参数应设置为TRUE以启用旧的认证协议。

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)

字符串

相关问题