【问题标题】:Setup Global Options of RMySQL to use with sqldf in R设置 RMySQL 的全局选项以在 R 中与 sqldf 一起使用
【发布时间】:2020-05-25 05:15:12
【问题描述】:

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

Postgree 示例:

选项 (sqldf.RPostgreSQL.user = "postgres", sqldf.RPostgreSQL.password = "测试", sqldf.RPostgreSQL.dbname = "postgres", sqldf.RPostgreSQL.host = "本地主机", sqldf.RPostgreSQL.port = 5432)

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

【问题讨论】:

    标签: r sqldf rmysql


    【解决方案1】:

    最后,经过至少 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 中的默认值考虑在内,以避免在进行查询时出现编码错误。

    【讨论】:

      【解决方案2】:

      文档位于 ?sqldf 中。 (您需要参考 MySQL 文档和 RMySQL R 包以了解详细信息。这可能因您使用的 MySQL 版本而异。)来自?sqldf

      在 MySQL 上,数据库必须预先存在。创建一个 c:\my.ini 或 Windows 上的 %MYSQL_HOME%\my.ini 文件或 UNIX 上的 /etc/my.cnf 文件 包含有关数据库的信息。该文件可以指定 用户名、密码和端口。如果有密码可以省略 未设置。如果使用标准端口设置,则端口可以是 也省略了。数据库取自 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
      

      【讨论】:

        猜你喜欢
        • 2017-06-16
        • 2014-10-05
        • 1970-01-01
        • 2021-12-30
        • 2013-01-26
        • 1970-01-01
        • 2019-04-16
        • 2013-08-16
        • 2021-01-01
        相关资源
        最近更新 更多