मैं विंडोज पर पायथन 3 में MySQL से कैसे जुड़ सकता हूं?


145

मैं विंडोज पर ActiveState पायथन 3 का उपयोग कर रहा हूं और अपने MySQL डेटाबेस से जुड़ना चाहता हूं। मैंने सुना है कि mysqldbउपयोग करने के लिए मॉड्यूल था। मैं mysqldbपायथन 3 के लिए नहीं मिल सकता ।

वहाँ एक रिपॉजिटरी उपलब्ध है जहाँ बायनेरिज़ मौजूद हैं mysqldb? मैं विंडोज पर पायथन 3 में MySQL से कैसे जुड़ सकता हूं?


अनधिकृत बायनेरिज़ के लिंक के लिए केसवीह के लिए धन्यवाद, लेकिन मैं बहुत अधीर था और ऐसा प्रतीत होता है कि जनता अभी भी python2
panofish


1
जब भी मैं पाइप लगाता हूं, मेरा पेट फूल जाता है। 7 साल और गिनती।
Ska

जवाबों:


274

वर्तमान में mysql के साथ पायथन 3 का उपयोग करने के लिए कुछ विकल्प हैं:

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

  • आधिकारिक तौर पर ओरेकल द्वारा समर्थित है
  • शुद्ध अजगर
  • थोड़ा धीमा
  • MySQLdb के साथ संगत नहीं है

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

  • शुद्ध अजगर
  • Mysql-कनेक्टर की तुलना में तेज़
  • MySQLdbफोन करने के बाद लगभग पूरी तरह से संगतpymysql.install_as_MySQLdb()

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

  • वैकल्पिक सी स्पीडअप के साथ pymysql का कांटा

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

  • Django के अनुशंसित पुस्तकालय।
  • मूल MySQLdb के अनुकूल कांटा, किसी दिन वापस विलय करने की उम्मीद करता है
  • सबसे तेज कार्यान्वयन, क्योंकि यह सी आधारित है।
  • MySQLdb के साथ सबसे अधिक संगत है, क्योंकि यह एक कांटा है
  • डेबियन और उबंटू इसका उपयोग पैकेज python-mysqldbऔर python3-mysqldbपैकेज दोनों प्रदान करने के लिए करते हैं।

यहाँ बेंचमार्क: https://github.com/methane/mysql-driver-benchmarks


26
pip install mysqlclient बस मेरे लिए काम किया ! विकल्पों की व्यापक सूची के लिए धन्यवाद।
ILMostro_7

4
mysqlclientबस मेरे Python3.4 + Django + पैसेंजर + ड्रीमहोस्ट इंस्टॉल के लिए काम किया।
रैंजडिलन

उबंटू में mysqlclient Debian नहीं
ManuelSchneid3r

ऐसा लगता है कि mysqlclient के testingरूप में डेबियन में है python3-mysqldb, लेकिन यह अंदर नहीं है stable। तो यह अगले संस्करण में होगा।
कोलिन एंडरसन

ubuntu पर mysql कनेक्टर स्थापित करने के लिए आप एक उपयुक्त प्रयोग कर सकते हैं जैसेsudo apt-get install python3-mysql.connector
peiman F.

67

आपको संभवतः इसके बजाय pymysql - Pure Python MySQL क्लाइंट का उपयोग करना चाहिए ।
यह पायथन 3.x के साथ काम करता है, और इसमें कोई निर्भरता नहीं है।

यह शुद्ध पायथन 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
दुर्भाग्य से यह एक ज़ीरो-डॉक्यूमेंटेड लाइब्रेरी है, जो सिर्फ काम
o0 '।

7
@ लोरिस: मैं बिना किसी समस्या के इसका उपयोग कैसे करूं?
ओलेह प्रिनपिन

मैं इसे विंडोज 7 पर पायथन 3.x के साथ स्थापित नहीं कर पाया हूं। किसी को पता है कैसे?
पौल

3
अजगर संस्करण 3.3.1 यहाँ और यह स्थापित नहीं करता है। लापता मॉड्यूल के बारे में शिकायत की जाती है constants
पीजूस

@ पायस क्योंकि आप इसे गलत कर रहे हैं। बस जाँच की और यह काम करता है।
ओलेह प्रिपिन 22

7

मैंने बहुत अधिक भाग्य के बिना pymysql (अपने Win7 x64 मशीन, पायथन 3.3 पर) का उपयोग करने की कोशिश की। मैंने .tar.gz को डाउनलोड किया, निकालें, "setup.py स्थापित" चला, और सबकुछ ठीक लग रहा था। जब तक मैंने एक डेटाबेस से जुड़ने की कोशिश नहीं की, और "कीर्रर [56]" मिला। एक त्रुटि जिसे मैं कहीं भी प्रलेखित नहीं कर पाया।

इसलिए मैंने pymysql को छोड़ दिया, और मैं Oracle MySQL कनेक्टर पर बस गया ।

यह एक सेटअप पैकेज के रूप में आता है, और बॉक्स से बाहर काम करता है। और यह शालीनता से प्रलेखित भी लगता है।


मैं MySQLdb का उपयोग कर रहा था और यह बहुत अच्छा काम करता है, लेकिन स्पष्ट रूप से, मैं समय के साथ डिफैक्टो मानक बनने की उम्मीद करूंगा।
पैनोफिश

6

यदि आप MySQLdb का उपयोग करना चाहते हैं तो सबसे पहले आपको अपने पीसी पर विंडोज़ के cmd में टाइप करके pymysql स्थापित करना होगा

    pip install pymysql

फिर अजगर शेल में, टाइप करें

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

यह कनेक्शन स्थापित करेगा।



5

सारांश

मैसकलक्लिंट सबसे अच्छा विकल्प (IMHO) है क्योंकि यह पायथन 3+ के साथ त्रुटिपूर्ण काम करता है , अपेक्षित सम्मेलनों (mysql कनेक्टर के विपरीत) का अनुसरण करता है, ऑब्जेक्ट नाम mysqldb का उपयोग करता है जो मौजूदा सॉफ्टवेयर के सुविधाजनक पोर्टिंग को सक्षम करता है और पायथन 3 के लिए Django द्वारा उपयोग किया जाता है।

वहाँ एक रिपॉजिटरी उपलब्ध है जहाँ बायर्स mysqldb के लिए मौजूद हैं?

हाँ। mysqlclient आपको mysqldb फ़ंक्शन का उपयोग करने की अनुमति देता है। हालाँकि, याद रखें कि यह mysqldb द्वारा सीधा पोर्ट नहीं है , बल्कि mysqlclient द्वारा निर्मित है

मैं विंडोज पर पायथन 3 में MySQL से कैसे जुड़ सकता हूं?

पाइप mysqlclient स्थापित करें

उदाहरण

#!/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()

मैं पायथन 3 के लिए mysqldb नहीं ढूँढ सकता।

mysqldb को अभी तक पोर्ट नहीं किया गया है


4

PyMySQL MySQLDb को इंटरफेस की तरह भी देता है। आप अपने आरंभ में कोशिश कर सकते हैं:

import pymysql
pymysql.install_as_MySQLdb()

इसके अलावा python3 के लिए github पर mysql-python का एक पोर्ट है।

https://github.com/davispuh/MySQL-for-Python-3


2

Oracle / MySQL एक आधिकारिक, शुद्ध पायथन DBAPI ड्राइवर प्रदान करता है: http://dev.mysql.com/downloads/connector/python/

मैंने इसे पायथन 3.3 के साथ उपयोग किया है और इसे बहुत अच्छा काम करने के लिए पाया है। SQLAlchemy के साथ भी काम करता है।

इस प्रश्न को भी देखें: क्या पायथन 3 ट्रेन में सवार होना अभी भी जल्दी है?


1

मेरे मैक ओएस पर मैं यह कोशिश:

  • टर्मिनल प्रकार में:

    1) mkdir -p ~ / bin ~ / tmp ~ / lib / python3.3 ~ / src 2) निर्यात TMPDIR = ~ / tmp
    3) wget -O ~ / bin / 2to3
    4) http://hg.python.org / cpython / raw-file / 60c831305e73 / Tools / script / 2to3 5) chmod 700 ~ / bin / 2to3 6) cd ~ / src 7) git क्लोन https: //github.petehunt/PyMySQL.git 8) cd PyMySQL /
    9) python3.3 setup.py स्थापित - स्थापना-देयता = $ HOME / lib / python3.3 - स्थापना-स्क्रिप्ट = $ HOME / bin

उसके बाद, python3 दुभाषिया में टाइप करें और टाइप करें:

  1. आयात pymysql । यदि कोई त्रुटि नहीं है, तो आपकी स्थापना ठीक है। सत्यापन के लिए mysql को इस फ़ॉर्म से जोड़ने के लिए एक स्क्रिप्ट लिखें:

  2. # MySQL कनेक्शन आयात के लिए एक सरल स्क्रिप्ट pymysql db = pymysql.connect (host = "localhost", user = "root", passwd = "* , db = "biblioteca") #Sure, यह मेरे db के लिए सूचना है # कनेक्शन db.close को बंद करें () *

इसे एक नाम दें (उदाहरण के लिए "con.py") और इसे डेस्कटॉप पर सहेजें। टर्मिनल प्रकार में "सीडी डेस्कटॉप" और फिर $ python con.py यदि कोई त्रुटि नहीं है, तो आप MySQL सर्वर से जुड़े हैं। सौभाग्य!


0

CyMySQL https://github.com/nakagami/CyMySQL

मैंने अपनी खिड़कियों पर पाइप 7 स्थापित किया है, अजगर 3.3 के साथ बस पाइप स्थापित करें cymysql

(आप साइथन की जरूरत नहीं है) जल्दी और दर्द रहित


0

यह मेरे मूल प्रश्न का पूरी तरह से उत्तर नहीं देता है, लेकिन मुझे लगता है कि सभी को यह बताना महत्वपूर्ण है कि मैंने क्या किया और क्यों किया।

मैंने सामान्य तौर पर वेब पर 2.7 उदाहरणों और मॉड्यूलों की व्यापकता के कारण अजगर 3 के बजाय अजगर 2.7 का उपयोग जारी रखना चुना।

मैं अब mysqldb और mysql.connector दोनों का उपयोग पायथन 2.7 में MySQL से कनेक्ट करने के लिए करता हूं। दोनों महान हैं और अच्छी तरह से काम करते हैं। मुझे लगता है कि mysql.connector अंततः बेहतर दीर्घकालिक है।


यदि आप अभी भी पायथन 2.7 का उपयोग कर रहे हैं तो मैं उत्सुक हूं। सामान्य तौर पर, मुझे लगता है कि पायथन 3 के लिए संक्रमण करना वास्तव में महत्वपूर्ण है, और नए प्रोजेक्ट्स के लिए पायथन 2.7 के लिए कई प्रोग्रामर को देखकर मुझे आश्चर्य हुआ है। कैसे काम किया?
vy32

@ vy32 मुझे लगता है कि आप py27 को चुनने वाले डेवलपर्स द्वारा कम आश्चर्यचकित हो सकते हैं यदि आप मानते हैं कि कई सर्वर ओएस सीधे पायथन का समर्थन नहीं करते हैं। रेड हैट एंटरप्राइज लिनक्स अभी भी सबसे हाल के संस्करण तक पायथन 2.6 के साथ बंडल किया जा रहा था , और यहां तक ​​कि केवल एक py27 है।
coredumperror

अजगर 2.7 का उपयोग करने का एक और कारण है क्योंकि माया (जो अजगर का समर्थन करता है) 2.7 आंतरिक रूप से उपयोग करता है। BTW ... यदि आप भी माया में अजगर के माध्यम से MySQL से कनेक्ट करने की आवश्यकता है ... शुद्ध अजगर mysql कनेक्टर का उपयोग करें।
panofish

0

मैं एक रसभरी पी पर python3 के साथ cymysql का उपयोग कर रहा हूं, मैं बस इसके द्वारा स्थापित किया गया हूं: sudo pip3 install cython sudo pip3 install cymysql जहां cython आवश्यक नहीं है, लेकिन cymysql को तेज करना चाहिए

अब तक यह एक आकर्षण की तरह काम करता है और MySQLdb के समान है


0

यह एक त्वरित ट्यूटोरियल है कि पायथन 3.7 को मैसकल
के साथ कैसे काम करना है, उन सभी के लिए धन्यवाद, जिनसे मुझे मेरे सवालों के जवाब मिले
- आशा है कि यह किसी दिन मदद करता है।
-------------------------------------------------- -
मेरा सिस्टम:
विंडोज संस्करण: प्रो 64-बिट

आवश्यकताएँ .. डाउनलोड और स्थापित इन पहले ...
1. डाउनलोड Xampp ..
https://www.apachefriends.org/download.html
2. डाउनलोड अजगर
https://www.python.org/downloads/windows/

- ------------
// METHOD
--------------
स्थापित करने के बाद सबसे पहले xampp स्थापित करें - Python 3.7 स्थापित करें।
एक बार दोनों को स्थापित करने के बाद - अपने विंडोज़ सिस्टम को रिबूट करें।
अब xampp शुरू करें और कंट्रोल पैनल से - mysql सर्वर शुरू करें।
सीएमडी और टर्मिनल प्रकार को खोलकर संस्करणों की पुष्टि करें

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

यह
अब पायथन संस्करण की जांच करने के लिए है कि दोनों की पुष्टि सीएमडी में निम्नलिखित प्रकार की गई है ...

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

और यह thats ... अपने अब पूरी तरह से एक अजगर स्क्रिप्ट से mysql से जुड़ा ...
आनंद लें ...


0

आयात pymysql

डेटाबेस कनेक्शन खोलें

db = pymysql.connect ("लोकलहोस्ट", "रूट", "", "आभूषण")

कर्सर () विधि का उपयोग करके एक कर्सर ऑब्जेक्ट तैयार करें

कर्सर = db.cursor ()

sql = "आइटम से चयन करें"

cursor.execute (SQL)

सूचियों की सूची में सभी पंक्तियों को प्राप्त करें।

परिणाम = कर्सर .fetchall () परिणामों में पंक्ति के लिए: item_title = row [1] टिप्पणी = पंक्ति [2] प्रिंट ("वस्तुओं का शीर्षक निम्नलिखित =% s हैं, टिप्पणियाँ निम्नलिखित हैं =% s"% \ "(आइटम-शीर्षक), टिप्पणी))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.