首页 > 解决方案 > 设置 RMySQL 的全局选项以在 R 中与 sqldf 一起使用

问题描述

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

Postgree 的示例:

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

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

标签: rsqldfrmysql

解决方案


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

  1. 创建一个 my.cnf 文件

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

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

[rs-dbi] 用户 = root 密码 = 测试端口 = 3310 默认字符集 = latin1 主机 = 127.0.0.1 数据库 = 测试 local-infile [mysql] local-infile [mysqld] local_infile = 1

  1. 只是 sqldf (x = test_query, drv = "RMySQL")
  2. 请享用。必须将所选数据库的编码作为 rs-dbi 中的默认值考虑在内,以避免在进行查询时出现编码错误。

推荐阅读