0

私は実際に、私の問題をほぼまとめたブログ投稿を見つけました。そので

http://simon04.net/2013/03/python3-mysql/

ブログ投稿は最も明確ですが、要約すると、現在、PyMySQL3 という python パッケージを使用してリモートの MySQL データベースにアクセスしようとしています。ただし、「AttributeError: 'bytes' オブジェクトに属性 'encode' がありません」というエラーが表示され続けます。上記のブログ投稿やその他の調査から、これは私のデータベースの認証方法が古いことに関係していると思います。

しかし、MySQL 4.0 で古い認証方法が段階的に廃止されたように見えるので、私は混乱しています。私が持っているデータベースは MySQL 5.0.51a を実行しています。私のデータベースは正しい認証を持っているべきではありませんか?

私はこれにしばらく取り組んでいて、少しイライラしています。うまくいけば、誰かが助けてくれるでしょう。ありがとう、

4

2 に答える 2

0

https://github.com/petehunt/PyMySQL/issues/64から

私にとって、この問題は古い認証方法の使用が原因でした ( http://dev.mysql.com/doc/internals/en/authentication-method.htmlを参照)。新しいユーザーを作成し (パスワードのリセットも同様に機能する場合があります)、mysql.user テーブル内のこのユーザーのパスワード列が * で始まることを確認します (そうでない場合は、上記のリンクに従ってサーバー構成を確認してください)。自分。

あなたが言及したまさにこのバージョンでユーザーを作成しましたか?

このスレッドは、コード内の問題を修正する方法も示しています。問題を修正するために追加のヘルプが必要な場合は教えてください。それに応じて回答を編集します。

于 2013-05-04T19:19:03.597 に答える
0

わかりました、これをさらに調査しているときに、私のホスティング会社 (aplus.net) が最新ではなかったのではないかと思いました。とにかく会社を変えるつもりだったので、別の会社で新しい口座を開設しました。これで、PyMySQL3 との接続に問題はなくなりました。どうやら、私の古いホスティング会社は最新ではなかったか、少なくとも SQL 構成が PyMySQL3 を壊していたようです。

しかし、あなたの応答をありがとう。ホスティング会社を切り替えることが常に最善の答えであるとは限らないため、他の多くの人がこの問題を抱えていないことを願っています = O

于 2013-05-05T08:19:30.093 に答える