タグ別アーカイブ: トラブル

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」
として、クリアしてあげましょう。