monoからのMySQL接続に希望の光!
ネット上の資料やMySQLのオフィシャルサイトには「簡単にできるぜ」的な事が書いてあるのだが、何度やってもどうやってもmono上ではMySQL Connector/Netが上手く動かなかった。
どうやっても最後の最後で例外を吐いて死ぬ。
かれこれ1年くらいふと思ったときに挑戦していたのだが、なかなか上手くいかない。
「まぁmonoだしな〜」と半ば諦めていたのだが、本日こんな記事を発見。
【Monoで他のDBも使ってみたよ!(PostgreSQL、MySQL編) 】
http://codezine.jp/article/detail/2913?p=4
当初、「Connector/Net 5.2.3」の「Windows Binaries, no installer (ZIP)」版を使用し、接続確認を行ったところ
Unhandled Exception: System.ArgumentException: Encoding name 'sjis' not supported
Parameter name: nameという例外が発生しました。そこで「Sources (ZIP)」版を確認してみると、ソース資源内の「CharSetMap.cs」に以下の修正を行う必要があることが分かり、
104行目
mapping.Add("sjis", new CharacterSet("sjis", 2));
変更
mapping.Add("sjis", new CharacterSet("shift_jis", 2));次の手順で対応を行いました。
まじか!!!!!!!!!
MySQLのコードが間違ってたのか…俺が甘かったぜ。
帰って早速やってみる!!