15

I have a problem when trying to connect to MySQL database using Windows OBDC driver. There are plenty of search hits regarding the obvious... people are using old versions, however, I'm not.

mysqld is on CentOS 6.4 32bit

./usr/libexec/mysqld  Ver 5.1.69 for redhat-linux-gnu on i386 (Source distribution)

enter image description here

So I'm at a loss to understand where any pre 4.1.1 protocol is coming from. Any ideas?

4

7 に答える 7

10

適切な質問をすれば、答えを見つけやすくなると思います。

この場合、「私」の問題は、パスワードがハッシュされてデータベースに保存される方法に関連しています。従来のパスワードは、現在は推奨されていない短いハッシュで保存されていました。

いくつかの重要なポイント:

mysql_upgradeはパスワードをアップグレードできませんし、アップグレードしません。また、一部のバージョンでは警告もしません。

ほとんどが最新のサーバーとクライアントを使用している場合でも、レガシーパスワードを作成するために必要なのはどこかのレガシークライアントだけであり、どのクライアントがそれを使用しようとしても、そのアカウントで問題が発生します.

バージョンが異なれば、状況への対処方法も異なるため、データベース内の一部のレガシー パスワードを使用していると、明らかな理由もなく突然、一部のアカウントが機能しなくなります... これは、バージョンが状況を処理する方法を選択したためです。

パスワードをアップグレードすることはできません。それらが何であるかを知り、それらを変更する必要があります。

編集:より明確にするために、より長いハッシュを使用する新しいクライアントを使用して、より短いハッシュで保存されているパスワードを変更する必要があります。そうすることで、そのアカウントのパスワードをより長いハッシュで書き込むことになり、その時点で、アカウントへのアクセスの試みにフラグが立てられることはなくなります。問題が再発する場合は、廃止されたハッシュ長のパスワードを書き込んでいるサイトの古いクライアントを探す必要があります。

于 2013-05-11T05:34:51.347 に答える
3

古いバージョンのドライバー 3.51.30 をインストールしてみてください: http://dev.mysql.com/downloads/connector/odbc/5.1.html#downloads Mysql Ver 5.0.24a-community で動作します

于 2013-05-28T10:52:02.973 に答える
1

リモートで MySQL データベースにアクセスしようとすると、同様のエラー メッセージが表示されました。Directadmin を使用して、上記のように MySql データベースのパスワードを簡単に変更できました。これにより、新しいハッシュ方式を使用してパスワードが自動的に生成されました。これにより、リモート接続の問題が即座に解決されました。

于 2014-02-13T19:21:11.780 に答える
0

サーバーを変更できない場合は、おそらくクライアントを変更できます: http://bugs.mysql.com/bug.php?id=75425

于 2015-01-06T15:54:55.510 に答える
0

誰かがこれに当たった場合に備えて、別の解決策を見つけました-非常に奇妙です-

  1. 5.1 64 ビット ODBC ドライバーをインストールします。ODBC 接続自体が機能することを確認します。接続できる場合は、#2 を実行した後に接続できるはずです。
  2. Linked Servers - Providers をクリックします。MSDASQL を右クリックし、Properties をクリックします。
    • "Allow inprocess" のチェックを外します - TEXT および NTEXT フィールドを挿入する必要がない限り、これは良いことです。
  3. リンクされたサーバー接続を作成するか、あなたが戦ってきたものをテストしてください - 笑

「インプロセスを許可する」にチェックを入れても、ODBC システム DSN が正常に機能していてもエラーが発生しました。5.2 (正常に動作するサーバー) とそうでないサーバーの 5.1 が混在していたため、5.1 ドライバーではエラーが発生しないため、SQL はプロセスを共有していたと思います。

于 2013-12-17T00:29:42.263 に答える