Как я могу подключиться к MySQL в Python 3 на Windows? - PullRequest
142 голосов
/ 10 февраля 2011

Я использую ActiveState Python 3 в Windows и хотел подключиться к моей базе данных MySQL. Я слышал, что mysqldb - это модуль для использования. Я не могу найти mysqldb для Python 3.

Есть ли в наличии репозиторий, в котором существуют двоичные файлы для mysqldb? Как я могу подключиться к MySQL в Python 3 в Windows?

Ответы [ 13 ]

251 голосов
/ 08 сентября 2014

В настоящее время есть несколько вариантов использования Python 3 с mysql:

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

  • Официально поддерживается Oracle
  • Чистый питон
  • Немного медленно
  • Не совместим с MySQLdb

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

  • Чистый питон
  • Быстрее, чем MySQL-разъем
  • Почти полностью совместим с MySQLdb, после вызова pymysql.install_as_MySQLdb()

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

  • форк pymysql с дополнительными ускорениями C

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

  • Библиотека, рекомендованная Джанго.
  • Дружественный форк оригинальной MySQLdb, надеется когда-нибудь объединиться
  • Самая быстрая реализация, так как она основана на C.
  • Наиболее совместим с MySQLdb, так как это форк
  • Debian и Ubuntu используют его для предоставления пакетов python-mysqldb и python3-mysqldb.

тесты здесь: https://github.com/methane/mysql-driver-benchmarks

66 голосов
/ 03 июля 2011

Вам, вероятно, следует использовать pymysql - вместо этого чистый клиент MySQL Python .
Он работает с Python 3.x и не имеет никаких зависимостей.

Этот чистый клиент Python MySQL предоставляет DB-API для базы данных MySQL, напрямую общаясь с сервером через двоичный протокол клиент / сервер.

Пример:

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()
7 голосов
/ 10 мая 2013

Я также попытался использовать pymysql (на моей машине с Win7 x64, Python 3.3), но без особой удачи.Я скачал .tar.gz, распаковал, запустил «setup.py install», и все выглядело нормально.Пока я не попытался подключиться к базе данных, и получил «KeyError [56]».Ошибка, которую я нигде не смог найти в документации.

Поэтому я отказался от pymysql и остановился на Oracle MySQL коннекторе .

Он поставляется в качестве настройкипакет, и работает из коробки.И это также кажется прилично задокументированным.

6 голосов
/ 09 марта 2016

Если вы хотите сначала использовать MySQLdb, вам нужно установить pymysql на свой компьютер, набрав cmd в Windows

    pip install pymysql

затем в оболочке python введите

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

это установит соединение.

5 голосов
/ 10 февраля 2011

Не проверено, но есть несколько двоичных файлов, доступных по адресу:

Неофициальные двоичные файлы Windows

4 голосов
/ 11 сентября 2013

PyMySQL также предоставляет MySQLDb-подобный интерфейс.Вы можете попробовать в вашей инициализации:

import pymysql
pymysql.install_as_MySQLdb()

Также есть порт mysql-python на github для python3.

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

3 голосов
/ 13 декабря 2017

Резюме

Mysqlclient - лучшая альтернатива (IMHO), потому что она работает безупречно с Python 3 + , соответствует ожидаемым соглашениям (в отличие от mysql соединитель), использует имя объекта mysqldb , что обеспечивает удобное портирование существующее программное обеспечение и используется Django для сборок Python 3

Есть ли доступный репозиторий, где существуют двоичные файлы для mysqldb?

Да. mysqlclient позволяет использовать функции mysqldb. Хоть, помните, это не прямой порт от mysqldb, а сборка mysqlclient

Как я могу подключиться к MySQL в Python 3 в Windows?

pip install 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()

Я не могу найти mysqldb для Python 3.

mysqldb еще не был портирован

2 голосов
/ 17 декабря 2013

Oracle / MySQL предоставляет официальный, чистый драйвер Python DBAPI: http://dev.mysql.com/downloads/connector/python/

Я использовал его с Python 3.3 и нашел, что он отлично работает.Также работает с SQLAlchemy.

См. Также этот вопрос: Еще слишком рано садиться на поезд Python 3?

1 голос
/ 20 декабря 2013

На моем Mac OS Maverick я пытаюсь это:

После этого введите интерпретатор python3 и введите:

  1. import pymysql.Если ошибки нет, ваша установка в порядке.Для проверки напишите скрипт для подключения к mysql с помощью этой формы:

  2. # простой скрипт для импорта соединения MySQL pymysql db = pymysql.connect (host = "localhost", user = "root", passwd = "*", db = "biblioteca") # Конечно, это информация для моего db # закрыть соединение db.close () *

Дайте ему имя (например, "con.py") и сохраните его на рабочем столе.В Терминале введите «cd desktop» и затем $ python con.py. Если ошибки нет, вы подключены к серверу MySQL.Удачи!

0 голосов
/ 02 апреля 2018

Это краткое руководство о том, как заставить Python 3.7 работать с Mysql.
Спасибо всем, кто получил ответы на мои вопросы.
- надеюсь, это когда-нибудь кому-нибудь поможет.
-------------------------------------------------- -
Моя система:
Версия для Windows: Pro 64-bit

ТРЕБОВАНИЯ .. сначала загрузите и установите их ...
1. Загрузить Xampp ..
https://www.apachefriends.org/download.html
2. Загрузить Python
https://www.python.org/downloads/windows/

--------------
// МЕТОД
--------------
Сначала установите 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 ...
Наслаждайтесь ...

...