Как я могу подключиться к 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")
это установит соединение.
Ответ 5
Неподтвержденный, но есть несколько исполняемых файлов:
Неофициальные бинарные файлы Windows
Ответ 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 еще не был перенесен
Ответ 8
Oracle/MySQL предоставляет официальный, чистый драйвер PAPI DBAPI: http://dev.mysql.com/downloads/connector/python/
Я использовал его с Python 3.3 и нашел, что он отлично работает. Также работает с SQLAlchemy.
Смотрите также этот вопрос: Слишком рано переходить на поезд Python 3?
Ответ 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, комментарий)