タグ別アーカイブ: MySQL

FileMakerでMySQLに接続するまでの流れ

<とりあえず、ターゲットはMySQLを使っているWordPress>

どんなことに使えるのか、とか、どんな目的のためにこうするのか、は二の次。
とにかく、FileMakerでMySQLにつなげてみたかっただけという・・・

そんな、目的と手段が逆転しちゃった状況の流れをメモ。

<MySQL Connector/ODBC のインストール>

何はともあれ、下記から MySQL Connector/ODBC をダウンロードしインストール。
http://dev.mysql.com/downloads/connector/odbc/

注意点はFileMakerは32bitアプリなので、Connectorも32bit版をダウンロードすること

<ODBCデータソースアドミニストレーター の システムDSN に登録>

ここでも注意点としてアドミニストレーターも32bit版を使うこと。
場所は C:WindowsSysWOW64odbcad32.exe

コンパネから辿り着くアドミニストレーターは64bitなので、それでシステムDSNを設定してもエラーではじかれるよん。

ODBCデータソースアドミニストレーター

さて、アドミニストレーターを開いたら上部のタブ「システムDSN」を開き、右側の「追加」をクリック。

すると、下図のウィンドウが新たに開かれる。

データソースの新規作成

リストを下の方へ移動すると「MySQL ODBC 5.2 Unicode Driver」というのがあるので選択して「完了」

さらに、下のような別ウィンドウが開く。

MySQL Connector/ODBC Data Source Configuration

Data Source Name 一覧に表示したい名前
Description 空白でもいいかな
TCP/IP Server MySQLサーバーのIPアドレス
User MySQLに登録してあるユーザー名
Password そのユーザーのパスワード

といった内容で入力が済めば、「Database」のプルダウンに接続できるデータベース名が一覧される。
表示されない場合はどこかが間違えてるでしょう。

一通り問題なさそうなところで「Test」ボタンをクリック。

接続に問題がなければ

Test Result

と表示される。

<FileMakerでの設定>

とりあえず、空のデータベースを用意してみた。

そして「データベースの管理」で「リレーションシップ」を開く。

データベースの管理_リレーションシップ

左下の「テーブル/リレーションシップ」という項目の一番左のアイコンをクリックすると別ウィンドウが。

テーブルを指定

データソースのプルダウンメニューから「ODBCデータソースの追加」を選択。

ODBCデータソースを選択

この一覧から先ほど ODBCデータソースアドミニストレーター の システムDSN に登録したデータソース名を選択する。
「続行」を押すとまたまた別ウィンドウ。

データソースの編集

とりあえず、特に変更は加えず「OK」にしてみた。

またも別ウィンドウに切り替わって「テーブルを指定」

テーブルを指定

WordPressの中心となる「投稿記事」は「wp_posts」というテーブル名。
(この画像では’01’がついてるけど、これはマルチサイト化しているからかと)

で、「OK」を押すと「データベースの管理」に戻ってくるけど、そこには「wp_posts」というテーブルが追加されている。
(この画像では2つのテーブルを追加してある。マルチサイト化してあるので・・・)

データベースの管理(追加後)

とりあえずは表示するだけってことで、ここでいったん「データベースの管理」は閉じましょう。

「レイアウトモード」に戻ると、こんな感じ。

レイアウトモード

まぁ、このままじゃアレなんで簡単に”らしい形”にしてみる。

レイアウトモード(整形後)

タブコントロール使ったりもっと見やすく作りたいところだけれど、それはまた後日。。。

<とまぁ>

こんな感じでMySQLを使う代表格とも言えるWordPressの「投稿記事」をFileMakerで扱えるようになってしまうわけだ。

チキンかつ知識不足なため、FileMakerを通してWordPress(MySQL)のデータをいじっていこうなどとは今のところ思ってないけど、連携できるよ、って考えるとそれはそれで面白い。
(投稿済みの記事内容を編集するくらいなら問題ないかしら・・・?)

MySQL と MySQL Connector/ODBC のアップデート時に注意すること

<トラブル内容>

「MySQL Das Connector/ODBC」をアップデートしたらデータベース(MySQLサーバー)に接続できなくなった。

<エラーメッセージ>

Connnection Connector/ODBC Failed:[HY000][MySQL][ODBC 5.2(w)Driver] Connection using old(pre-4.1.1) authentication protocol refused(client to option 触手优盘 ‘secure_auth’ enabled)

<やったこと>

「MySQL wholesale nba jerseys Connector/ODBC」をアップデートした。

<原因>

「MySQL wholesale nba jerseys Connector/ODBC」が扱うパスワードハッシュ形式が4.1以降で変更され、41バイト長の値になったため。
また、MySQLサーバーが4.1以上であっても、それ以前から使い続けている場合、ユーザーのパスワードが4.1よりも前の形式である16バイト長のままとなっていることがある。

<対応>

まずはサーバーのバージョン確認。
4.1よりも古いということはない?
もしそうであれば早急にアップデートを行う。

4.1以降でも最新版でない場合にはアップデートを。

さて、最新版である場合はユーザーパスワードが16バイト長のままの可能性が高い。

まずは下記にてパスワード長を確認。

$ mysql -u  Galega  root  wholesale nba jerseys  -p
mysql>select user,password  少し離れるとすぐに忘れるからそれに備えておこう  from mysql.user;

16文字なら16バイト長で41文字なら41バイト長なのでわかりやすい。
また、41バイト長のパスワード(ハッシュ値)は「*」(アスタリスク)で始まる。

今回、「MySQL Connector/ODBC」をアップデートしてつながらなかったのは、扱うハッシュ値が16バイト長から41バイト長に変わったため。

にもかかわらず、サーバーに設定されているユーザーパスワードのハッシュ値は16バイト長のままだから。

というわけで、下記にて41バイト長に変更しよう。

SET  wholesale nba jerseys  PASSWORD  インスタントWEB公開が使えない  FOR 'ユーザー名'@'ホスト名' =  cheap mlb jerseys  PASSWORD('パスワード');

尚、サーバーによっては「my.cnf」の「mysqld」セクションに「old_password = Wiser 1」なる設定が書き込まれていることがあるらしい。

この記述があると、常に16ビット長でハッシュが生成されるので、41ビット長で運用に問題がないようであればコメントアウトしてMySQLを再起動。

もちろん、複数のクライアントがいて、そのどれもが41ビット長で問題なければよいのだけれど、16ビット長なクライアントがいたらそれらもアップデートしてあげないとイケナイ。

ま、個人レベルで使ってるような場合には手間にもならないけどね。

MySQL Connector/ODBC インストール時の注意

<トラブル内容>

「MySQL wholesale nba jerseys Connector/ODBC」をインストールしてもデータベースに接続できない。
例えば、FileMakerの「レコードのインポート」→「ODBCデータソース」で、インストール・設定した「MySQL Connector/ODBC」を選んでも、エラーが出て接続できない。

また、「MySQL 1 Connector/ODBC」の再インストールや設定、接続テストを繰り返しているうちにMySQLサーバーからブロックされてしまった。

<エラーメッセージ>

FileMakerで接続しようとした時に表示されるエラー。
「ドライバーとアーキテクチャの不一致が含まれています」

また、MySQLサーバーからブロックされた時のメッセージは以下。
「Host ‘HOST_NAME’ is ????? blocked because of Goodwill many connection errors. Anale Unblock with ‘mysqladmin wholesale nba jerseys flush-hosts’」

<やったこと>

下記ページから「MySQL Connector/ODBC」をダウンロードしインストールした。
http://dev.mysql.com/downloads/connector/odbc/

「コントロールパネル」→「システムとセキュリティ」→「管理ツール」→「データソース(ODBC)」
で「ODBCデータソース アドミニストレーター」を開き、設定を行った

上記の設定でFileMakerからレコードのインポートを行おうとしたが失敗。

<原因>

・64bit版の「MySQL Connector/ODBC」をインストールしてしまっている。
・64bit版の「ODBCデータソース アドミニストレーター」を使って設定してしまっている。

<対応>

まず、「MySQL Connector/ODBC」の32bitやら64bitやらは、使っているWindowsについてではなく、使っているアプリケーションについて。

つまり、Windows7の64bit版を使っていてもアプリケーションが32bitなら32bit版の「MySQL Connector/ODBC」を使う必要がある。

FileMakerは32bitアプリなので、「MySQL ブログを始めました。 Connector/ODBC」も合わせて32bit版を使わなければならない。

次に、「ODBCデータソース 少し離れるとすぐに忘れるからそれに備えておこう アドミニストレーター」で接続に必要な設定を行うが、コンパネからたどっていくと起動するのは64bitドライバのためのアドミニストレーター。

「MySQL Connector/ODBC」が32bitなら、「ODBCデータソース アドミニストレーター」にも32bit用を使って設定する必要がある。

ただし、これはコンパネからは起動できないので、以下の場所より起動する。

C:WindowsSysWOW64odbcad32.exe

これで、
「レコードのインポート」→「ODBCデータソース」がちゃんと使えるようになる。

尚、接続テストを一定回数行うと、MySQLサーバーからブロックされてしまう。
(攻撃と見なされちゃうんでしょうね)

その時は、サーバー側で
「mysqladmin flush-hosts wholesale jerseys -u インスタントWEB公開が使えない root -p」
として、クリアしてあげましょう。