设置RMySQL的全局选项以与R中的sqldf一起使用

问题描述 投票:0回答:2

我在使用sqldf和Rpostgree进行列编码时遇到很多问题(当我在包含西班牙语字母的数据集中进行查询时,会将其转换为奇怪的字符),因此,我想移至MYSQL,但是我发现它的文档太混乱了,无法与sqldf一起使用,我需要知道如何输入数据库参数以将sqldf与先前配置的数据库一起使用。

Postgree示例:

选项(sqldf.RPostgreSQL.user =“ postgres”,sqldf.RPostgreSQL.password =“测试”,sqldf.RPostgreSQL.dbname =“ postgres”,sqldf.RPostgreSQL.host =“ localhost”,sqldf.RPostgreSQL.port = 5432)

有人知道如何检查特定软件包的选项,在本例中为RMySQL。

r sqldf rmysql
2个回答
0
投票
最后,在多篇文章中经过至少3个小时的曲折阅读后,我可以找到一种配置sqldf使用的mysql数据库的方法,并且不会死于尝试,我必须警告您这是唯一的工作方法,因为如果您使用RMySQL创建连接,然后将该连接用作sqldf中的参数,则会收到多个连接错误。

  1. 创建my.cnf文件
  2. 这是工作所需的一切,它必须是rs-dbi,因为这是sqldf用来执行查询的默认测试环境,此外,您必须首先使用旧的身份验证方法安装mysql数据库,如果您使用加密,则会由于sqldf驱动程序不支持而生成错误。

必须添加local-infile参数,以允许将本地数据加载到mysql数据库,否则将产生错误。

[rs-dbi]用户=超级用户密码=测试端口= 3310默认字符集= latin1主机= 127.0.0.1数据库=测试本地文件[mysql]本地文件[mysqld] local_infile = 1

    仅sqldf(x = test_query,drv =“ RMySQL”)
  1. 享受。必须将所选数据库的编码作为rs-dbi中的默认值,以避免在进行查询时出现编码错误。

0
投票
该文档在?sqldf中。 (有关详细信息,您需要参考MySQL文档和RMySQL R软件包。这可能会因所使用的MySQL版本而异。)从?sqldf

在MySQL上,数据库必须预先存在。创建一个c:\ my.ini或Windows上的%MYSQL_HOME%\ my.ini文件或UNIX上的/etc/my.cnf文件包含有关数据库的信息。该文件可以指定用户名,密码和端口。如果有尚未设置。如果使用标准端口设置,则该端口可以是也省略了。该数据库取自数据库的dbname参数。sqldf命令,或者如果未从getOption(“ sqldf.dbname”)设置,或者未设置选项,则假定为“测试”。请注意,MySQL不使用sqldf的用户,密码,主机和代码端口参数。看到http://dev.mysql.com/doc/refman/5.6/en/option-files.html为可以放置配置文件的其他位置以及其他信息。

此外,您也可以尝试使用SQLite(这是默认后端,无需安装)。在Windows上使用默认的SQLite后端,这对我有效。

library(sqldf) d <- data.frame(x = "el perro saltó sobre el zorro perezoso") sqldf("select * from d") ## x ## 1 el perro saltó sobre el zorro perezoso

© www.soinside.com 2019 - 2024. All rights reserved.