8

私はRが初めてで、RをMySQLに接続しようとしています。私は64ビット用にインストールmysql-5.5.22-winx64しました。R-2.12.0私はすでに次の手順を設定MYSQL_HOME environment path(C:\Program Files\MySQL\MySQL Server 5.5)して実行しようとしています:

  1. ここから最新の RTools をインストールします
  2. MySQL または mysql のヘッダーとライブラリ ファイルをインストールする
  3. ファイルを作成または編集し、次C:\Program Files\R\R-2.12.1\etc\Renviron.siteのような行を追加MYSQL_HOME=C:/mysqlします(mysqlファイルへのパス)
  4. からコピーlibmysql.libmysql/libmysql/lib/opt、依存関係を満たします。
  5. または にコピーlibmysql.dllします。 C:\Program Files\R\R-2.12.1\binwindows/system32 directory
  6. 実行install.packages('RMySQL',type='source')して、コンパイルが終了するまで待ちます。しかし、まだこのエラーが発生しています:-

    *> install.packages('RMySQL',type='source')
     --- Please select a CRAN mirror for use in this session ---
     trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/RMySQL_0.9-3.tar.gz'
     Content type 'application/x-gzip' length 165363 bytes (161 Kb)
     opened URL
     downloaded 161 Kb
    
    * installing *source* package 'RMySQL' ...
    ERROR: configuration failed for package 'RMySQL'
    * removing 'C:/PROGRA~1/R/R-212~1.0/library/RMySQL'
    * restoring previous 'C:/PROGRA~1/R/R-212~1.0/library/RMySQL'
    
     The downloaded packages are in
      ‘C:\Users\sharad\AppData\Local\Temp\RtmpdQHwCb\downloaded_packages’
     Warning message:
          In install.packages("RMySQL", type = "source") :
    installation of package 'RMySQL' had non-zero exit status*
    

この問題を解決する方法を教えてください。

最後に解決策を見つけました:-私のブログで解決策の詳細を確認できます。

私は過去2日間、RMySQLパッケージを使用したRのインストールに取り組んでいましたが、最終的にその解決策を得ました.RMySQLパッケージをインストールする手順は次のとおりです:-

  1. 次のリンクからソフトウェアをダウンロードします。

       * a. R2.13.2:  Download R from http://cran.stat.sfu.ca/index.html
    
        b. RTools 214:  Download RTools from http://cran.cict.fr
    
        c. RMySQL 0.8-0.tar.gz: Download RMySQL from 
         http://biostat.mc.vanderbilt.edu/wiki/main/RMySQL/RMySQL_0.8-0.tar.gz
    
        d. MySQL Server 5.0: download it from http://dev.mysql.com
    
        e. RSTUDIO (optional): download it from http://rstudio.org*
    
  2. 次の環境変数を設定します

        * a. MYSQL_HOME : <drive>/path to MySQL installation folder
             e.g. MYSQL_HOME= C:\Program Files\MySQL\MySQL Server 5.5\  
    
          b. R_HOME: <drive>/path to R installation
             e.g. R_HOME=C:\Program Files\R\R-2.13.2\
    
           c. PATH: Modify path to accommodate the above variables. *
    

    次のパスが Windows PATH 変数に含まれていることを確認してください: \Rtools\2.14\bin \Rtools\2.14\MinGW\bin \Rtools\2.14\MinGW64\bin

  3. フォルダの作成とファイルのコピー

        * a. OPT: Create a folder OPT under
                 C:\Program Files\MySQL\MySQL Server 5.5\lib and
             copy MYSQLLIB.LIB  the above path.
           Also copy libmysql.dll to
                  <drive>\<path>\R\R-2.14.0\bin\(64 bit) Or
                  <Drive>\<path>\R\R-2.14.0\bin\i386\ (32 bit) and
             to C:\Windows\System32.
    
          b. Renviron.site: create or edit a file 
                  <DRIVE>\<path>\R\R-2.14.0\etc\Renviron.site and 
            add a line: 
              MYSQL_HOME =”C:/Program Files/MySQL/MySQL Server 5.5/”
            NB: USE FORWARD SLASH AND DOUBLE QUOTES HERE
    
          c. libMySQL.dll: Copy this file to
                C:\Program Files\R\R-2.13.2\bin\i386 as well as
                C:\Program Files\R\R-2.13.2\bin*
    
    1. 実行コマンド

      a. Install.Packages: デスクトップの R アイコンをクリックするか、[スタート] メニューから R GUI を実行します。INSTALL.PACKAGES(“RMySQL”,type="Sources") と入力 します。 これにより、必要なソフトウェアがリポジトリからダウンロードされます。

      b. コマンド プロンプト: ダウンロードした zip ファイルを (手順 4.a. で) コピーし、R インストール フォルダーの下に貼り付けます。スタート メニューに移動し、コマンド プロンプトを開きます。R インストール フォルダーに移動し、「R CMD INSTALL RMySQL_0.8-0.tar.gz」と入力します。

      *コマンド:

      ライブラリ(RMySQL) drv = dbDriver("MySQL") con = dbConnect(drv,host="localhost",dbname="test",user="root",pass="root") アルバム = dbGetQuery(con,statement= "select * from t_master") アルバム*

4

7 に答える 7

4

私は週末に Mac OSX のハッカソンでこれに出くわしました - いくつかの参考資料 (最後に述べた) があるにもかかわらず、すべてをまとめるのに 4 時間かかりました。簡単なウォークスルーが見つからなかったので、新鮮なうちに投稿することにしました。

Windows との互換性についてはよくわかりませんが、これらの手順があなたにとっても簡単になることを願っています。

R と MySQL がローカル環境で通信できるようにしようとしていました (サーバー環境の変更が必要になる場合があります)。私は XAMPP を使用していますが (接続には RMySQL は使用していません)、最終的には PHP ページを使用して R ファイルを書き込み、そのファイルを実行し、R を MySQL テーブルに書き込むことができました。私の知る限り、これはMacOSXでのみ機能します...

使用したすべてのソフトウェアは dmg 形式なので、バイナリのインストールは必要ありません。

  1. R をダウンロードし、いくつかの基本的なコマンドを実行して、R が機能していることを確認します。

  2. R では、RODBC をインストールする必要があります (まだインストールしていない場合)。これを R コンソールに入力します。

install.packages("RODBC")

これによりRODBCがインストールされますが、OS Mavericks以降、特定のファイルが含まれなくなったため、エラーメッセージが表示されます

ODBC ヘッダー sql.h および sqlext.h が見つかりません

また、適切な場所に sql.h および sqlext.h ファイルを取得する必要があります。

これを最も簡単な方法で行うには、homebrewがインストールされていることを確認してください (簡単な手順)。次に、ターミナルでこのコードを使用してインストールを行います。

それが完了したら、もう一度 R コンソールに入ります。

install.packages("RODBC")
  1. MySQL で適切な ODBC インストールを検索します。Mac OSX 10.6 を実行しているので、dmg をダウンロードしてインストールしました。これでなんとかなりました。

  2. ここで、トリッキーな部分が来ます。Mac OX は、最近の OS リリース後に ODBC アドミニストレーターを削除したようです。そのため、ODBC マネージャー ( http://www.odbcmanager.net/ ) をダウンロードする必要があります。これも dmg ファイルなので、utilities フォルダーにドラッグ アンド ドロップするだけです。

5.3.6 dmg のインストールで問題が発生した (失敗し続ける) ため、代わりに 5.2.7 をインストールしました。

  1. ODBC マネージャーを開きます。DSNを設定する必要があるので、「システムDSN」タブをクリックして「追加」をクリック。

  2. ドライバーの選択を求めるポップアップ ウィンドウが表示されます。私のMySQL ODBCインストールに基づいた「MySQL ODBC 5.2 Driver」がありました。「OK」をクリックします。ドライバーが表示されない場合は、MySQL ODBC がインストールされていることを確認する必要があります。

  3. 次のポップアップ ウィンドウで、データ ソース名 (DSN) を好きなようにします。ただし、これは R から呼び出すために使用する必要がある名前であることに注意してください。下のキーワード領域では (キーワードは引用符で囲まれ、値は括弧内)、ADD

    "database" (データベース名の値を含む)

    "server" (ローカル環境では localhost を使用しないでください。代わりにローカル IP アドレス 127.0.0.1 を使用してください。*** これは私にとって重要な部分でした)

    「uid」(データベースのユーザーID)

    "pwd" (データベースパスワード)

    「socket」(これが必要かどうかはわかりませんが、複数のチュートリアルの後、私の構成に残され、動作するようになったので、必要になるかもしれません。my.cnf でソケットの場所を見つけることができます - スポットライト検索を行います。ソケット ファイル場所は CLIENT の下にあります)

    私の構成は次のようになります。

    DSN (「テスト」 - これは一番上にありました)

    データベース (「テレビ」)

    ソケット ("/Applications/XAMPP/xamppfiles/var/mysql.sock")

    uid (「ルート」)

    pwd ("")

    サーバー (「127.0.0.1」)

  4. R では、以下を実行します。R を起動するたびに、MySQL クエリを作成する前に、これらの最後の 3 つの手順を実行する必要があると思います。

    ライブラリ(RODBC)

  5. XAMPP コントロール パネルから MySQL と Apache がオンになっていることを確認します。

  6. 次に実行

    odbcConnect("test") - 二重引用符で DSN を使用した方法に注目してください。必要に応じて交換してください。

これで起動して実行できるようになります。R での MySQL クエリの作成に関する他のチュートリアルを読むことができます。

スタック オーバーフロー (みんなありがとう!)、ランダムな他のサイト/電子メール交換の履歴、およびジョセフ アドラーによる「R In A Nutshell」の本に関する多くの素晴らしい投稿からこれをハッキングしましたが、何かを見逃したり、不明。

幸運を!

于 2013-04-29T06:06:30.273 に答える
1

また、Windows 10でこれを機能させるために数時間を費やし、エラーが発生しました。私が見つけた RMySQL の修正は面倒で複雑でしたが、RODBC はより簡単に、そしてエレガントに解決に導きます。R、RStudio、MySQL Server、MySQL Workbench があり、それを機能させるには次の追加手順が必要でした。

  1. パッケージを RStudio にインストールするinstall.packages(RODBC)
  2. ここから MySQL ODBC コネクタをダウンロードしてインストールします
  3. MySQL ODBC コネクタを構成します。ここにいくつかの指示があります。Windows 10 のスタート画面から「ODBC」を検索するだけで、そのウィンドウがポップアップ表示されます。接続パラメータを正しく設定し、テスト ボタンを使用して動作することを確認します。接続すると、ドロップダウン メニューにデータベースのリストが表示されます。「データ ソース名」で、R スクリプトに入る名前を付けます。たとえば、「mysql_odbc」とします。

これで、接続してクエリを実行し、切断できます。

library(RODBC)
cursor <- odbcConnect("mysql_odbc", uid="root", pwd="HaysPuffyWalton5")
out <- sqlQuery(cursor, "SELECT * FROM emp WHERE deptno = 10");
close(cursor);
于 2016-09-01T10:05:18.137 に答える
0

Rでこのエラーが発生した場合

library(RMySQL)
#-----------
Loading required package: DBI

Error : .onLoad failed in loadNamespace() for 'RMySQL', details

  call: i$Location

  error: $ operator is invalid for atomic vectors

Error: package or namespace load failed for 'RMySQL'

それからRの外側から

set MYSQL_HOME=F:/Program Files/MySQL/MySQL Server 5.6

そして内部に戻る:

library(RMySQL)

#Loading required package: DBI
#MYSQL_HOME defined as F:/Program Files/MySQL/MySQL Server 5.6

またはRの内側から

Sys.setenv(MYSQL_HOME = "F:/Program Files/MySQL/MySQL Server 5.6")
library(RMySQL)

#Loading required package: DBI
#MYSQL_HOME defined as F:/Program Files/MySQL/MySQL Server 5.6
于 2013-11-25T01:15:27.793 に答える
0

こちらのガイドに従ってください:

http://www.ahschulz.de/2013/07/23/installing-rmysql-under-windows/

私はそれに従いました、そしてそれは魅力のように働きました。:)

于 2014-02-08T10:36:45.550 に答える
0

直接的な回答ではありませんが、それでも役立つ場合があります。

  1. R の最新バージョンを使用する (現在は 2.15)

  2. Windows プラットフォームでは、チーム メンバー間でコードが頻繁に共有される異種プラットフォーム (つまり、Linux と Windows) の環境にいる場合を除き、RODBC + Windows MySQL ドライバーを使用したいと思います。それでも、実行するプラットフォームに応じて、同じスクリプトで RMySQL と RODBC のどちらを使用するかを選択するのは簡単です。if() {...} else {...}

あなたがやろうとしていることに成功例がないと言っているわけではありませんが、私見では、上記の方法ですぐに稼働できるようになるでしょう。

于 2012-04-25T05:21:41.707 に答える