Настройте глобальные параметры R MySQL для использования с sqldf в R - PullRequest
0 голосов
/ 09 февраля 2020

У меня много проблем с кодированием столбцов с использованием sqldf и Rpostgree (когда я выполняю запросы в наборах данных, которые содержат буквы языка Spani sh, он преобразует их в странные символы), по этой причине я хочу перейти к MYSQL, но я нахожу его документацию слишком запутанной. Чтобы использовать ее с sqldf, мне нужно знать, как я могу ввести параметры моей базы данных, чтобы использовать sqldf с моей ранее сконфигурированной базой данных.

Пример для Postgree :

параметры (sqldf.R PostgreSQL .user = "postgres", sqldf.R PostgreSQL .password = "test", sqldf.R PostgreSQL .dbname = " postgres ", sqldf.R PostgreSQL .host =" localhost ", sqldf.R PostgreSQL .port = 5432)

Кто-то знает, как я могу проверить параметры указанного c пакет, в данном случае R MySQL.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Наконец, после, по крайней мере, 3 часов мучительного чтения нескольких статей, я смог найти способ настроить базу данных mysql для использования sqldf, и, не умирая при попытке, я должен предупредить вас, что это единственный способ работать, так как если вы создадите соединение с использованием R MySQL, а затем используете соединение в качестве параметра в sqldf, вы получите несколько ошибок соединения.

  1. Создайте файл my.cnf

  2. Здесь есть все необходимое для его работы, это должен быть rs-dbi, потому что это среда тестирования по умолчанию, используемая sqldf для выполнения запросов, кроме того, сначала вы должны установить mysql база данных, использующая старый метод аутентификации, если вы используете шифрование, это приведет к ошибкам, потому что драйверы sqldf не поддерживают ее.

должны быть добавлены параметры local-infile для разрешения локальных данных загрузка в базу данных mysql, иначе это приведет к ошибкам.

[rs-dbi] пользователь = root пароль = тестовый порт = 3310 набор символов по умолчанию = латиноамериканский хост = 127.0.0.1 база данных = тестирование локального файла [mysql] локального файла [mysqld] local_infile = 1

Просто sqldf (x = test_query, drv = "R MySQL") наслаждайтесь. Кодирование выбранных баз данных должно учитываться как значение по умолчанию в rs-dbi, чтобы избежать ошибок кодирования при выполнении запросов.
0 голосов
/ 10 февраля 2020

Документация находится в? Sqldf. (Вам необходимо обратиться к документации MySQL и пакету R MySQL R для получения подробной информации. Это может варьироваться в зависимости от используемой версии MySQL.) От ?sqldf:

На MySQL база данных должна существовать заранее. Создайте файл c: \ my.ini или% MYSQL_HOME% \ my.ini в Windows или файл /etc/my.cnf в UNIX для хранения информации о базе данных. Этот файл может указывать имя пользователя, пароль и порт. Пароль может быть опущен, если он не был установлен. Если используется стандартная настройка порта, порт также может быть опущен. База данных берется из аргумента dbname команды sqldf или, если она не установлена ​​в getOption ("sqldf.dbname"), или если эта опция не установлена, предполагается, что она "test". Обратите внимание, что MySQL не использует аргументы user, password, host и codeport в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...