RMySQL
の編集
http://www.okadajp.org/RWiki/?RMySQL
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
目次 #contents ---- [[Rとインターフェースのあるアプリ]] *[[RMySQL:http://cran.r-project.org/src/contrib/Descriptions/RMySQL.html]] [#ibddc002] [[R]]のためのデータベースインタフェースと[[MySQL]]ドライバを収めた パッケージ。主に次の二つの状況でお世話になる。 - データがMySQLの上のデータベースにあり、Rからそれを取り出して解析したい。 - R上のデータをMySQLのデータベースに保存したい。 MySQLにODBCドライバをインストールすれば、RODBCでも同様のことが実現できる。 最近のバージョンでは[[DBI]]パッケージに実装されているデータベースインタフェースの定義に従っている。 **インストール [#eac3e385] ***Linux/UNIXの場合 [#d96a010b] [[MySQL]]がインストールされていれて、ライブラリやヘッダにきちんとパスが設定してあれば、以下のように簡単にインストールできる。 $ sudo R > install.packages("DBI") > install.packages("RMySQL") [[MySQL]]サーバを別のホストで運用している場合には、Rを動かすクライアント上にはMySQLがフルインストールされている必要はなく、clientパッケージのみがインストールされていれば十分。 ***Windowsの場合 [#o9e1224d] R 2.12以降は、RMySQLのコンパイル済バイナリは配布されていないため、自分でコンパイルしてインストールする必要がある。 必須ソフトウェア +Rtools (Rのバージョンに対応したもの) +MySQL Client C API library (MySQL Community Server 内にも同梱) --MySQL Community Server を使用PCにデフォルトインストールした場合には MySQL Client C API library は既に入っているので新たに導入する必要無し --XAMPPのMySQLを使用している場合や別ホストの MySQL Server を利用している場合には付属していないので、 MySQL Client C API library を別途インストールする必要あり --[MySQL Client C API library のインストール例]XAMPP使用の場合やMySQL Serverをローカルで動かさない場合~ MySQL Community Server の MSI Installer 版をダウンロードし、インストール時の Setup Wizard で「Custom」を選び、以下の図のように Client C API library のみをインストールする。~ &ref(MySQL_Custom_Setup.png); RMySQL 構築手順1 -Rの環境変数 MYSQL_HOME に MySQLのインストールディレクトリを8.3形式で指定する。 --例: MySQL Community Server 5.5 の MSI Installer 版を Windows Vista にデフォルトインストールした場合~ C:\Users\ユーザー名\Documents に 「.Renviron」という名前でテキストファイルを作成し、内容は MYSQL_HOME=C:/PROGRA~1/MySQL/MYSQLS~1.5 と記述する。 RMySQL 構築手順2 -[Windows XP/Vista]MySQL のインストールディレクトリにある lib\libmysql.lib を lib\opt\libmysql.lib にコピーする。~ MySQL Community Server 5.5の場合、デフォルトでは C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib にあるので、それを C:\Program Files\MySQL\MySQL Server 5.5\lib\opt\libmysql.lib にコピーする。 -[Windows 7]MySQL のインストールディレクトリにある lib\libmysql.lib を bin\libmysql.lib にコピーする。 RMySQL 構築手順3 -Rで以下のコマンドを実行する。 install.packages('DBI') install.packages('RMySQL',type='source') **使い方 [#wc3c1c7e] Rを利用しているのと同じマシンで動いているMySQLが管理しているtest_dbというデータベースに、test_userというユーザがアクセスを許可されているものとする。このときに、MySQL上のtest_dbの中のtest_tableというテーブルの中身をクエリで取り出してR側のtest.tableに格納するには、次の手続きをとれば良い。 $ R > library(RMySQL) > m <- dbDriver("MySQL") > dbconnector <- dbConnect(m, dbname="test_db", user="test_user") > query.result <- dbSendQuery(dbconnector, "select * from test_table") > test.table <- fetch(query.result) > dbDisconnect(dbconnector) ここでdbConnectは、データベースとのセッションを開始する関数、dbCloseはセッションを終了する関数である。dbSendQueryがSQL文をMySQLサーバに送って、応答を受け取り、それをRで扱えるようにfetchで変換している。 dbSendQueryとfetchを用いる手順は、dbGetQueryを用いて次のように一行でも記述できる。 $ R > library(RMySQL) > dbconnector <- dbConnect(dbDriver("MySQL"), dbname="test_db", user="test_user") > test.table <- dbGetQuery(dbconnector, "select * from test_table") > dbDisconnect(dbconnector) dbserver.domainというホストの上で動いている場合、またtest_userにパスワードが必要な場合には、少々長くなるが、次のように記述すれば良い。 $ R > library(RMySQL) > dbConnect(dbDriver("MySQL"), host="dbserver.domain", dbname="test_db", user="test_user", password="password") ... **参考URL [#z9731d77] [[Vanderbilt Biostatistics : Main.RMySQL:http://biostat.mc.vanderbilt.edu/wiki/Main/RMySQL]]が、このパッケージのホームページになる。すべてを網羅してはいないが、[[CRAN上に置かれているレファレンスマニュアル:http://cran.r-project.org/web/packages/RMySQL/RMySQL.pdf]]も参考になる。 **注意 [#n9ff76bc] RとMySQLをそれぞれ別のマシンで動かしているときには、サーバ側のMySQLのバージョンとクライアント側のMySQL(のライブラリ)のバージョンに注意すること。たとえば、サーバ側が3.23系列で、クライアント側が4.0系列の時には、RMySQLをクライアントにインストールしてもサーバには接続できないかもしれない。 上記の手続きで接続できずにエラーが表示される場合にはまず、同じマシンにインストールされているはずのMySQLのクライアントで接続を試みてみると良い。上述の例では、パスワードはコンソールから入力することにして、次の命令を実行すると、接続を確認できる。 % mysql -h dbserver.domain -u test_user -p test_db ** R-1.8.0から利用する際の注意 [#pa453467] http://stat.bell-labs.com/RS-DBI/download/#R-1.8.0 より R-1.8.0で[[RMySQL]]を利用する場合、 Error in dbDriver("MySQL") : couldn't find function ".valueClassTest" というエラーを目にすることがある。これに対処するには、 $R_HOME/src/library/methods/NAMESPACE というファイル内に export(.valueClassTest) の一行を付け加えることで解決できる。 *リンク [#c5b8cb07] -[[Here is a Youtube video on how to use R to access MYSQL through RMySQL R package:http://quantlabs.net/r-blog/2012/06/here-is-a-youtube-video-on-how-to-use-r-to-access-mysql-through-rmysql-r-package/]] ---- [[itoshi]] had written this page.~ [[悠遊]] modified, updated, and added a comment on 2003/12/06.~ [[kawaji]] added a notice for R-1.8.0 (2004/09/05).~ [[wakuteka]] slightly modified on 2009/09/22 参考URLを最新のものに変更しました。~ [[nono]] modified about buiding RMySQL for Windows 2012/05/22~
タイムスタンプを変更しない
目次 #contents ---- [[Rとインターフェースのあるアプリ]] *[[RMySQL:http://cran.r-project.org/src/contrib/Descriptions/RMySQL.html]] [#ibddc002] [[R]]のためのデータベースインタフェースと[[MySQL]]ドライバを収めた パッケージ。主に次の二つの状況でお世話になる。 - データがMySQLの上のデータベースにあり、Rからそれを取り出して解析したい。 - R上のデータをMySQLのデータベースに保存したい。 MySQLにODBCドライバをインストールすれば、RODBCでも同様のことが実現できる。 最近のバージョンでは[[DBI]]パッケージに実装されているデータベースインタフェースの定義に従っている。 **インストール [#eac3e385] ***Linux/UNIXの場合 [#d96a010b] [[MySQL]]がインストールされていれて、ライブラリやヘッダにきちんとパスが設定してあれば、以下のように簡単にインストールできる。 $ sudo R > install.packages("DBI") > install.packages("RMySQL") [[MySQL]]サーバを別のホストで運用している場合には、Rを動かすクライアント上にはMySQLがフルインストールされている必要はなく、clientパッケージのみがインストールされていれば十分。 ***Windowsの場合 [#o9e1224d] R 2.12以降は、RMySQLのコンパイル済バイナリは配布されていないため、自分でコンパイルしてインストールする必要がある。 必須ソフトウェア +Rtools (Rのバージョンに対応したもの) +MySQL Client C API library (MySQL Community Server 内にも同梱) --MySQL Community Server を使用PCにデフォルトインストールした場合には MySQL Client C API library は既に入っているので新たに導入する必要無し --XAMPPのMySQLを使用している場合や別ホストの MySQL Server を利用している場合には付属していないので、 MySQL Client C API library を別途インストールする必要あり --[MySQL Client C API library のインストール例]XAMPP使用の場合やMySQL Serverをローカルで動かさない場合~ MySQL Community Server の MSI Installer 版をダウンロードし、インストール時の Setup Wizard で「Custom」を選び、以下の図のように Client C API library のみをインストールする。~ &ref(MySQL_Custom_Setup.png); RMySQL 構築手順1 -Rの環境変数 MYSQL_HOME に MySQLのインストールディレクトリを8.3形式で指定する。 --例: MySQL Community Server 5.5 の MSI Installer 版を Windows Vista にデフォルトインストールした場合~ C:\Users\ユーザー名\Documents に 「.Renviron」という名前でテキストファイルを作成し、内容は MYSQL_HOME=C:/PROGRA~1/MySQL/MYSQLS~1.5 と記述する。 RMySQL 構築手順2 -[Windows XP/Vista]MySQL のインストールディレクトリにある lib\libmysql.lib を lib\opt\libmysql.lib にコピーする。~ MySQL Community Server 5.5の場合、デフォルトでは C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib にあるので、それを C:\Program Files\MySQL\MySQL Server 5.5\lib\opt\libmysql.lib にコピーする。 -[Windows 7]MySQL のインストールディレクトリにある lib\libmysql.lib を bin\libmysql.lib にコピーする。 RMySQL 構築手順3 -Rで以下のコマンドを実行する。 install.packages('DBI') install.packages('RMySQL',type='source') **使い方 [#wc3c1c7e] Rを利用しているのと同じマシンで動いているMySQLが管理しているtest_dbというデータベースに、test_userというユーザがアクセスを許可されているものとする。このときに、MySQL上のtest_dbの中のtest_tableというテーブルの中身をクエリで取り出してR側のtest.tableに格納するには、次の手続きをとれば良い。 $ R > library(RMySQL) > m <- dbDriver("MySQL") > dbconnector <- dbConnect(m, dbname="test_db", user="test_user") > query.result <- dbSendQuery(dbconnector, "select * from test_table") > test.table <- fetch(query.result) > dbDisconnect(dbconnector) ここでdbConnectは、データベースとのセッションを開始する関数、dbCloseはセッションを終了する関数である。dbSendQueryがSQL文をMySQLサーバに送って、応答を受け取り、それをRで扱えるようにfetchで変換している。 dbSendQueryとfetchを用いる手順は、dbGetQueryを用いて次のように一行でも記述できる。 $ R > library(RMySQL) > dbconnector <- dbConnect(dbDriver("MySQL"), dbname="test_db", user="test_user") > test.table <- dbGetQuery(dbconnector, "select * from test_table") > dbDisconnect(dbconnector) dbserver.domainというホストの上で動いている場合、またtest_userにパスワードが必要な場合には、少々長くなるが、次のように記述すれば良い。 $ R > library(RMySQL) > dbConnect(dbDriver("MySQL"), host="dbserver.domain", dbname="test_db", user="test_user", password="password") ... **参考URL [#z9731d77] [[Vanderbilt Biostatistics : Main.RMySQL:http://biostat.mc.vanderbilt.edu/wiki/Main/RMySQL]]が、このパッケージのホームページになる。すべてを網羅してはいないが、[[CRAN上に置かれているレファレンスマニュアル:http://cran.r-project.org/web/packages/RMySQL/RMySQL.pdf]]も参考になる。 **注意 [#n9ff76bc] RとMySQLをそれぞれ別のマシンで動かしているときには、サーバ側のMySQLのバージョンとクライアント側のMySQL(のライブラリ)のバージョンに注意すること。たとえば、サーバ側が3.23系列で、クライアント側が4.0系列の時には、RMySQLをクライアントにインストールしてもサーバには接続できないかもしれない。 上記の手続きで接続できずにエラーが表示される場合にはまず、同じマシンにインストールされているはずのMySQLのクライアントで接続を試みてみると良い。上述の例では、パスワードはコンソールから入力することにして、次の命令を実行すると、接続を確認できる。 % mysql -h dbserver.domain -u test_user -p test_db ** R-1.8.0から利用する際の注意 [#pa453467] http://stat.bell-labs.com/RS-DBI/download/#R-1.8.0 より R-1.8.0で[[RMySQL]]を利用する場合、 Error in dbDriver("MySQL") : couldn't find function ".valueClassTest" というエラーを目にすることがある。これに対処するには、 $R_HOME/src/library/methods/NAMESPACE というファイル内に export(.valueClassTest) の一行を付け加えることで解決できる。 *リンク [#c5b8cb07] -[[Here is a Youtube video on how to use R to access MYSQL through RMySQL R package:http://quantlabs.net/r-blog/2012/06/here-is-a-youtube-video-on-how-to-use-r-to-access-mysql-through-rmysql-r-package/]] ---- [[itoshi]] had written this page.~ [[悠遊]] modified, updated, and added a comment on 2003/12/06.~ [[kawaji]] added a notice for R-1.8.0 (2004/09/05).~ [[wakuteka]] slightly modified on 2009/09/22 参考URLを最新のものに変更しました。~ [[nono]] modified about buiding RMySQL for Windows 2012/05/22~
テキスト整形のルールを表示する
添付ファイル:
MySQL_Custom_Setup.png
2387件
[
詳細
]