WindowsのPython 3でMySQLに接続するにはどうすればよいですか?


145

WindowsでActiveState Python 3を使用していて、MySQLデータベースに接続したいと思っています。私はそれを聞いmysqldb使用するモジュールでした。mysqldbPython 3が見つかりません。

バイナリが存在するリポジトリはありますmysqldbか?WindowsのPython 3でMySQLに接続するにはどうすればよいですか?


非公式なバイナリへのリンクについてcasevhのおかげで、私のpython 2.7をインストールしてからのMySQLdbをインストールして...私はあまりにもせっかちだった、大衆がまだpython2を使用していることが表示されますcodegood.com/archives/129
panofish


1
私がピップをタイプするたびに、私の胃はかき回されます。7年とカウント。
スカ

回答:


274

現在、mysqlでPython 3を使用するにはいくつかのオプションがあります。

https://pypi.python.org/pypi/mysql-connector-python

  • オラクルによって公式にサポートされています
  • ピュアパイソン
  • 少し遅い
  • MySQLdbと互換性がありません

https://pypi.python.org/pypi/pymysql

  • ピュアパイソン
  • mysql-connectorより高速
  • MySQLdb呼び出した後、ほぼ完全にと互換性があるpymysql.install_as_MySQLdb()

https://pypi.python.org/pypi/cymysql

  • pymysqlのフォークとオプションのC高速化

https://pypi.python.org/pypi/mysqlclient

  • Djangoの推奨ライブラリ。
  • オリジナルのMySQLdbのフレンドリーなフォーク、いつか戻ってマージすることを望んでいます
  • Cベースであるため、最速の実装。
  • フォークなので、MySQLdbと最も互換性があります。
  • DebianとUbuntuは、python-mysqldbpython3-mysqldbパッケージの両方を提供するためにそれを使用します。

ここのベンチマーク:https : //github.com/methane/mysql-driver-benchmarks


26
pip install mysqlclient ちょうど私のために働いた!オプションの包括的なリストをありがとう。
ILMostro_7 2015年

4
mysqlclient私のPython3.4 + Django + Passenger + Dreamhostインストールでうまくいきました。
ryanjdillon 2016年


あるmysqlclientのように見えるには、Debianであるtestingとしてpython3-mysqldb、それはではありませんstable。ですから次のバージョンになるでしょう。
コリンアンダーソン

mysqlコネクタをubuntuにインストールするには、aptのように使用できますsudo apt-get install python3-mysql.connector
peiman F.

67

おそらく代わりにpymysql -Pure Python MySQL clientを使用する必要があります
Python 3.xで動作し、依存関係はありません。

この純粋なPython MySQLクライアントは、バイナリクライアント/サーバープロトコルを介してサーバーと直接通信することにより、MySQLデータベースにDB-APIを提供します。

例:

import pymysql
conn = pymysql.connect(host='127.0.0.1', unix_socket='/tmp/mysql.sock', user='root', passwd=None, db='mysql')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
    print(r)
cur.close()
conn.close()

14
残念ながら、それはたまたま動作しない
です

7
@Lohoris:なぜ問題なく使用しているのですか?
Oleh Prypin 2011

Python 3.xがインストールされたWindows 7にこれをインストールできませんでした。誰か知ってる?
ポール2013年

3
Pythonバージョン3.3.1はここにあり、インストールされません。と呼ばれる不足しているモジュールについて文句を言いconstantsます。
Pijusn 2013

@Pius間違っているから。チェックしただけで動作します。
Oleh Prypin 2013

7

私もpymysql(Win7 x64マシン、Python 3.3)を使ってみましたが、あまりうまくいきませんでした。.tar.gzをダウンロードして抽出し、「setup.py install」を実行したところ、すべてが正常に見えました。データベースに接続して「KeyError [56]」になるまで。どこにも文書化されていないエラー。

それで私はpymysqlをあきらめ、Oracle MySQLコネクタに落ち着きました。

セットアップパッケージとして提供され、そのまま使用できます。そして、それもまともに文書化されているようです。


私はMySQLdbを使用していましたが、それはうまく機能しましたが、明らかに、これが将来的に事実上の標準になることを期待しています。
パノフィッシュ2014年

6

最初にMySQLdbを使用したい場合は、Windowsのcmdを入力してPCにpymysqlをインストールする必要があります。

    pip install pymysql

次に、Pythonシェルで次のように入力します

    import pymysql
    pymysql.install_as_MySQLdb()
    import MySQLdb
    db = MySQLdb.connect("localhost" , "root" , "password")

これで接続が確立されます。



5

概要

Mysqlclientは最適な代替手段(IMHO)です。これは、Python 3+で問題なく動作し 、期待される規則(mysqlコネクタとは異なります)に従い、既存のソフトウェアの便利な移植を可能にするオブジェクト名mysqldbを使用し、Python 3ビルドのDjangoで使用されます。

mysqldbのバイナリが存在するリポジトリはありますか?

はい。 mysqlclientを使用すると、mysqldb関数を使用できます。ただし、これはmysqldbによる直接のポートでなく、 mysqlclientによるビルドであることを覚えておいてください。

WindowsのPython 3でMySQLに接続するにはどうすればよいですか?

mysqlclientのpipインストール

#!/Python36/python
#Please change above path to suit your platform.  Am running it on Windows
import MySQLdb
db = MySQLdb.connect(user="my-username",passwd="my-password",host="localhost",db="my-databasename")
cursor = db.cursor()
cursor.execute("SELECT * from my-table-name")
data=cursor.fetchall()
for row in data :
    print (row)
db.close()

Python 3のmysqldbが見つかりません。

mysqldbはまだ移植されていません




1

私のマックOSマーベリックで私はこれを試します:

その後、python3インタープリターに入力して次のように入力します。

  1. pymysqlをインポートします。エラーがなければ、インストールは問題ありません。確認のために、次の形式でmysqlに接続するスクリプトを記述します。

  2. #MySQL接続用の簡単なスクリプトimport pymysql db = pymysql.connect(host = "localhost"、user = "root"、passwd = "* "、db =" biblioteca ")#もちろん、これは私のdbの情報です#接続を閉じますdb.close()*

名前を付け(たとえば、「con.py」)、デスクトップに保存します。ターミナルで「cdデスクトップ」と入力し、$ python con.pyと入力します。エラーがなければ、MySQLサーバーに接続しています。幸運を!



0

これは私の元の質問に完全に答えるものではありませんが、私がやったこととその理由をみんなに知らせることが重要だと思います。

一般的にWebに2.7のサンプルとモジュールが普及しているため、私はpython 3ではなくpython 2.7を使い続けることを選択しました。

現在、mysqldbとmysql.connectorの両方を使用して、Python 2.7でMySQLに接続しています。どちらも素晴らしく、うまく機能します。mysql.connectorは最終的には長期的には優れていると思います。


まだPython 2.7を使用しているのかどうか知りたいです。一般に、Python 3に移行することは非常に重要であると思います。多くのプログラマーが新しいプロジェクトでPython 2.7を選択しているのに驚いています。物事はどのように機能しましたか?
vy32 2015

@ vy32私は、多くのサーバーOSがPython 3を直接サポートしていないと考えると、開発者がpy27を選択することにそれほど驚かないかもしれません。RedHat Enterprise Linuxは最新バージョンまでPython 2.6にバンドルされていました。py27を持っています。
coredumperror 2016年

Python 2.7を使用するもう1つの理由は、Maya(Pythonをサポート)が内部で2.7を使用するためです。ところで... Mayaのpythonを介してMySQLに接続する必要がある場合...純粋なpython mysqlコネクタを使用します。
パノフィッシュ2017

0

私は単にラズベリーpiのpython3でcymysqlを使用しています:sudo pip3 install cython sudo pip3 install cymysql cythonは必要ありませんが、cymysqlをより高速にする必要があります

これまでのところ、それは魅力のように機能し、MySQLdbに非常によく似ています


0

これは、MySQLでPython 3.7を動作させる方法に関する簡単なチュートリアル です。
質問の回答をいただいたすべての人に感謝します
。これが誰かの役に立つことを願っています。
-------------------------------------------------- -
マイシステム:
Windowsバージョン:Pro 64ビット

要件..ダウンロードし、これらの最初の...インストール
1.ダウンロードXAMPPを..
https://www.apachefriends.org/download.html
2.ダウンロードPythonの
https://www.python.org/downloads/windows/

- ------------
// METHOD
--------------
インストールが完了したら、まずxamppをインストールします-Python 3.7をインストールします。
両方のインストールが完了したら、Windowsシステムを再起動します。
ここでxamppを起動し、コントロールパネルからmysqlサーバーを起動します。
CMDを開き、端末タイプでバージョンを確認します

c:\>cd c:\xampp\mysql\bin

c:\xampp\mysql\bin>mysql -h localhost -v
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.21-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

これはMYSQLのバージョンを確認することです

c:\xampp\mysql\bin>python
Python 3.7.0b3 (v3.7.0b3:4e7efa9c6f, Mar 29 2018, 18:42:04) [MSC v.1913 64 bit (AMD64)] on win32

これはPythonのバージョンを確認する
ことです両方が確認されたので、CMDに次のように入力します...

c:\xampp\mysql\bin>pip install pymysql

pymysqlのインストールが完了した後。
デスクトップなどにすばやくアクセスできるように、「testconn.py」という新しいファイルを作成します。
このファイルを崇高なまたは他のテキストエディタで開いて、これをそれに入れます。
データベースを反映するように設定を変更することを忘れないでください。

#!/usr/bin/python
import pymysql
pymysql.install_as_MySQLdb() 

import MySQLdb
db = MySQLdb.connect(user="yourusernamehere",passwd="yourpasswordhere",host="yourhosthere",db="yourdatabasehere")
cursor = db.cursor()
cursor.execute("SELECT * from yourmysqltablehere")
data=cursor.fetchall()
for row in data :
    print (row)
db.close()

今あなたのCMDで-タイプ

c:\Desktop>testconn.py

これで... Pythonスクリプトからmysqlに完全に接続されました...
楽しんでください...


0

pymysqlをインポートする

データベース接続を開く

db = pymysql.connect( "localhost"、 "root"、 ""、 "ornament")

cursor()メソッドを使用してカーソルオブジェクトを準備する

カーソル= db.cursor()

sql = "SELECT * FROM item"

cursor.execute(sql)

リストのリストのすべての行をフェッチします。

results = cursor.fetchall()for row in results:item_title = row [1] comment = row [2] print( "Title of items are the following =%s、Comments are the following =%s"%\(item_title、コメント))

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.