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

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

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

Ответ 1

В настоящее время существует несколько вариантов использования 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

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

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

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

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

Ответ 2

Вероятно, вы должны использовать pymysql - клиент Pure Python MySQL.
Он работает с 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()

Ответ 3

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

Итак, я отказался от pymysql, и я остановился на соединителе Oracle MySQL.

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

Ответ 4

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

    pip install pymysql

то в оболочке python введите

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

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

Ответ 6

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

import pymysql
pymysql.install_as_MySQLdb()

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

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

Ответ 7

Резюме

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 еще не был перенесен

Ответ 9

На моем mac os maverick я пробую это:

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

  •   

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

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

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

Ответ 10

Это не полностью отвечает моему первоначальному вопросу, но я думаю, что важно, чтобы все знали, что я сделал и почему.

Я решил продолжить использование python 2.7 вместо python 3 из-за распространенности 2.7 примеров и модулей в Интернете в целом.

Теперь я использую mysqldb и mysql.connector для подключения к MySQL в Python 2.7. Оба отличные и хорошо работают. Я думаю, что mysql.connector, в конечном счете, лучше долгосрочный.

Ответ 11

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

Я установил pip на мои окна 7, с python 3.3 просто pip install cymysql

(вам не нужен cython) быстрый и безболезненный

Ответ 12

Я использую cymysql с python3 на малине pi Я просто установил: sudo pip3 установить cython sudo pip3 install cymysql где cython не нужен, но должен сделать cymysql быстрее

Пока это работает как шарм и очень похоже на MySQLdb

Ответ 13

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

ТРЕБОВАНИЯ.. скачать и установить эти первые...
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...
Наслаждаться...

Ответ 14

импорт pymysql

открытое соединение с базой данных

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

подготовить объект курсора с помощью метода cursor()

cursor = db.cursor()

sql = "SELECT * FROM item"

cursor.execute(SQL)

Получить все строки в списке списков.

результаты = cursor.fetchall() для ряда в результатах:  item_title= row [1]  комментарий = строка [2]  print ("Название элементов следующее =% s, комментарии следующие =% s"% \         (item_title, комментарий)