Bagaimana cara menginstal modul Python MySQLdb menggunakan pip?


310

Bagaimana saya bisa menginstal modul MySQLdb untuk Python menggunakan pip?


11
Jika Anda ingin menggunakan ini dengan Python3 (mis., Dengan versi terbaru Django) Anda akan memerlukan mysqlclient karena MysqlDB tidak mendukung python3. Lihat Pertanyaan Ini
TD Smith

Saya menggunakan mysqlclient dengan Python 2.7 dan MariaDB tanpa masalah sejauh ini.
Dave Everitt

Jawaban:


522

Ini mudah dilakukan, tetapi sulit untuk mengingat ejaan yang benar:

pip install mysqlclient

Jika Anda membutuhkan versi 1.2.x (legacy Python saja), gunakan pip install MySQL-python

Catatan: Beberapa dependensi mungkin harus ada ketika menjalankan perintah di atas. Beberapa petunjuk tentang cara menginstal ini di berbagai platform:

Ubuntu 14, Ubuntu 16, Debian 8.6 (jessie)

sudo apt-get install python-pip python-dev libmysqlclient-dev

Fedora 24:

sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc

OS Mac

brew install mysql-connector-c

jika gagal, coba

brew install mysql

26
Anda tidak harus mengingat seluruh nama, Anda dapat menggunakan pip search mysqldan menemukan yang Anda butuhkan di output.
WKPlus

12
@WKPlus: benar ... tapi saya menemukannya pip search mysqldbdan tidak menemukannya. Jadi, saya memberi +1 jawaban ini.
Dan H

7
@WKPlus sebenarnya cukup merepotkan untuk mengetahui pilihan yang tepat setelah mencari pip mysql
kommradHomer

9
Saya harus google ini setiap waktu, jadi sialan benar
sleepycal

3
@ Davidvidkwii Ketika Anda tidak di dalam virtualenv, diperlukan sudo. Itu mungkin masalah Anda.
Marian

138

Mulai dari sistem Ubuntu 14.04.2 yang baru, dua perintah ini diperlukan:

 apt-get install python-dev libmysqlclient-dev
 pip install MySQL-python

Hanya melakukan "pip install" dengan sendirinya tidak berhasil.

Dari http://codeinthehole.com/writing/how-to-set-up-mysql-for-python-on-ubuntu/


2
ini berfungsi, untuk beberapa alasan instalasi pip sederhana tidak berfungsi dengan baik di ubuntu
Dap

Di ubuntu 14.04, akan mendapatkan kesalahan "naikkan EnvironmentError ("% s tidak ditemukan "% (mysql_config.path,)", dan cmd pertama memperbaiki masalah, terima kasih, hemat waktu saya
zhihong

Untuk memperbaiki error: command 'x86_64-linux-gnu-gcc' failed with exit status 1penggunaansudo apt-get install build-essential
FelikZ

Saya heran mengapa ini diperlukan. Satu hal terjadi pada saya. Saya menguji ini dengan menginstal saja dan tidak membangun. Apakah Anda membangun salah satu hal yang Anda instal daripada hanya menginstalnya?
Ray Kiddy

Ini tentu saja jawaban yang diterima untuk Ubuntu.
Roon13

23

Pertama

pip install pymysql

Kemudian masukkan kode di bawah ini ke __init__.py( projectname/__init__.py)

import pymysql
pymysql.install_as_MySQLdb()

Lingkungan saya adalah (python3.5, django1.10) dan solusi ini berfungsi untuk saya!

Semoga ini membantu!!


3
Woow, saya sudah menunggu selama 5 jam mencoba untuk memperbaikinya tanpa hasil. Ini adalah satu-satunya solusi yang bekerja pada Ubuntu 16.04 / python 3.5 / Django 1.11. Terima kasih telah berbagi ini.
Paullo

ini tidak berfungsi untuk saya, Lingkungan saya adalah python 3.7 dan Django 2.2. Tolong bantu saya.
Rajen K Bhagat

Ini harusnya ada di atas sana. Saya sudah mencari-cari solusi selama berjam-jam. Saya punya virtualenv dengan python 2.7 menjalankan Django 1.6. Saya tidak dapat menginstal MySQL-python atau mysqlclient. Tidak peduli apa pun yang saya coba, saya mendapatkan "kesalahan fatal: mysql.h". Yang ini berhasil.
rolandsaven

22

Saya punya masalah menginstal versi 64-bit dari MySQLdb di Windows melalui Pip (sumber kompilasi masalah) [versi 32bit diinstal ok]. Berhasil menginstal MySQLdb yang dikompilasi dari file .whl yang tersedia dari http://www.lfd.uci.edu/~gohlke/pythonlibs/

File .whl kemudian dapat diinstal melalui pip sebagai dokumen di https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels

Misalnya jika Anda menyimpan di C:/Anda dapat menginstal melalui

pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl

Tindak lanjut: jika Anda memiliki Python versi 64bit yang diinstal, maka Anda ingin menginstal MySQLdb versi AMD 64-bit dari tautan di atas [yaitu bahkan jika Anda memiliki prosesor Intel]. Jika Anda mencoba dan menginstal versi 32-bit, saya pikir Anda mendapatkan kesalahan roda yang tidak didukung dalam komentar di bawah ini.


Gagal total. Roda tidak didukung
M Hornbacher

3
Saya membutuhkan klien MySQL. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whlbekerja dengan baik.
arsenik

2
Pergi ke http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python untuk mengunduh whlfile (saya dl'd 64 bit agar sesuai dengan 64 bit saya menginstal Python). Menyimpan file ke dalam c:/direktori dan menjalankannya pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whldiinstal dalam hitungan detik dan baik untuk pergi. Terlalu mudah!
curtisp

Bekerja untuk saya juga, karena instalasi pip dengan nama gagal.
Artem Russakovskii


7

Saya mencoba semua opsi tetapi tidak bisa membuatnya bekerja di platform Redhat. Saya melakukan yang berikut untuk membuatnya bekerja: -

yum install MySQL-python -y

Setelah paket diinstal, dapat mengimpor modul sebagai berikut dalam juru bahasa: -

>>> import MySQLdb
>>> 

Pertanyaan itu secara spesifik menyebutkan pip. Distribusi apa yang Anda gunakan? Pada Fedora 24, karya ini untuk memasang modul melalui pip: sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian

Saya mengerti pertanyaannya adalah via pip tapi saya pribadi tidak bisa menyelesaikannya dengan menggunakan pip. Karenanya saya baru saja berbagi solusi yang memperbaiki masalah ini untuk saya. Saya menggunakan centos 6.8. daftar pip tidak menunjukkan apa pun yang terkait dengan mysql dan ketika saya melakukan "pip install MySQL-python" itu melemparkan kesalahan. Sekarang yang menarik saya menemukan bahwa setelah kita menginstal melalui yum i: e "yum install MySQL-python" Saya dapat mengimpor MySQLdb. Juga setelah selesai dengan instalasi yum saya dapat menginstal melalui pip tanpa kesalahan.
Ashwin

6

Pergi ke pycharm kemudian pergi ke pengaturan default -> pip (klik dua kali) - pymsqldb ..--> install --setelah menginstal digunakan dalam program seperti ini

import pymysql as MySQLdb

# Open database connection
db = MySQLdb.connect("localhost","root","root","test" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# execute SQL query using execute() method.
cursor.execute("show tables")

# Fetch a single row using fetchone() method.
data = cursor.fetchall()
print (data)

# disconnect from server
db.close()

3

Jika Anda menggunakan Raspberry Pi [Raspbian OS]

Ada perlu menginstal perintah pip pada awalnya

apt-get install python-pip

Jadi instal saja

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python

Raspberry tidak disebutkan dalam pertanyaan
Héctor Valverde Pareja


3

Jika Anda tidak dapat menginstal mysqlclient, Anda juga dapat menginstal pymysql :

pip install pymysql

Ini berfungsi sama dengan MySqldb . Setelah itu gunakan pymysql seluruh bukan MySQLdb


Ini seharusnya jawabannya.
JayJay123

2

Saya juga memiliki masalah yang sama. Ikuti langkah-langkah ini jika Anda menggunakan Windows. Pergi ke: 1. Komputer Saya 2. Properti Sistem 3. Pengaturan Sistem Lanjutan 4. Di bawah tab "Advanced" klik tombol yang mengatakan "Variabel Lingkungan" 5. Kemudian di bawah Variabel Sistem Anda harus menambahkan / mengubah variabel berikut: PYTHONPATH dan Path. Berikut ini tempel variabel yang terlihat seperti: python path:

C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

jalan:

C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

Lihat tautan ini untuk referensi


1

Jawaban di atas memang bagus, tetapi mungkin ada beberapa masalah ketika kita menggunakan pip untuk menginstal MySQL-python di Windows

misalnya, Perlu beberapa file yang terkait dengan Visual Stdio . Salah satu solusi adalah menginstal VS2008 atau 2010 …… Jelas, harganya terlalu mahal.

Cara lain adalah jawaban @ bob90937. Saya di sini untuk melakukan sesuatu untuk ditambahkan.

dengan http://www.lfd.uci.edu/~gohlke/pythonlibs , Anda dapat mengunduh banyak binari Windows dari banyak paket ekstensi sumber terbuka ilmiah untuk distribusi CPython resmi dari bahasa pemrograman Python.

Kembali ke topik, kita dapat memilih MySQL-python (py2) atau Mysqlclient (py3) dan menggunakan pip install untuk menginstal. itu memberi kita kenyamanan!


1

Untuk Python3 saya perlu melakukan ini:

python3 -m pip install MySQL


1

di RHEL 7:

sudo yum install yum-utils mariadb-devel python-pip python-devel gcc

sudo /bin/pip2 install MySQL-python


1

Jika Anda menginstal Windows di sistem Anda, ketikkan perintah berikut di cmd:

pip install mysql-connector

jika perintah di atas tidak berfungsi coba gunakan:

pip install mysql-connector-python

Sekarang, jika perintah di atas tidak menyelesaikan pekerjaan, coba gunakan:

pip install mysql-connector-python-rf

Itu saja Anda baik untuk pergi sekarang.


1

Banyak jawaban yang diberikan di sini cukup membingungkan sehingga saya akan mencoba membuatnya lebih sederhana. Ini membantu saya untuk menginstal ini

pip install pymysql

dan kemudian gunakan perintah berikut dalam file python

import pymysql as MySQLdb

Dengan cara ini Anda dapat menggunakan MySQLdb tanpa masalah.


0

Jika pip3 tidak berfungsi, Anda dapat mencoba:

sudo apt install python3-mysqldb

Jawabannya tidak terlalu bagus. Anda menganggap versi Python adalah 3 dan OS adalah Debian / Ubuntu, tetapi Anda tidak tahu itu. Harap tunggu hingga penulis menambahkan rincian lebih lanjut.
phd

0

Lingkungan saya adalah:

  • Windows 10 Pro,
  • Python 3.7 (python-3.7.1-amd64.exe),
  • MySQL 8.0 (mysql-installer-web-community-8.0.13.0.msi)

pip install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

bekerja untukku.

import MySQLdb, sys


# --------------------------------------------------
# Connect to MySQL
# --------------------------------------------------
try:
    db = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database", charset='cp1251')
except MySQLdb.Error as e:
    print ("Error %d: %s" % (e.args[0], e.args[1]))
    sys.exit()

# Creating cursor 
cursor = db.cursor()

0

sebenarnya, ikuti jawaban @Nick T tidak bekerja untuk saya, saya coba apt-get install python-mysqldbbekerja untuk saya

root@2fb0da64a933:/home/test_scrapy# apt-get install python-mysqldb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libmariadbclient18 mysql-common
Suggested packages:
  default-mysql-server | virtual-mysql-server python-egenix-mxdatetime python-mysqldb-dbg
The following NEW packages will be installed:
  libmariadbclient18 mysql-common python-mysqldb
0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded.
Need to get 843 kB of archives.
After this operation, 4611 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stretch/main amd64 mysql-common all 5.8+1.0.2 [5608 B]
Get:2 http://deb.debian.org/debian stretch/main amd64 libmariadbclient18 amd64 10.1.38-0+deb9u1 [785 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 python-mysqldb amd64 1.3.7-1.1 [52.1 kB]                    
Fetched 843 kB in 23s (35.8 kB/s)                                                                                 
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package mysql-common.
(Reading database ... 13223 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.8+1.0.2_all.deb ...
Unpacking mysql-common (5.8+1.0.2) ...
Selecting previously unselected package libmariadbclient18:amd64.
Preparing to unpack .../libmariadbclient18_10.1.38-0+deb9u1_amd64.deb ...
Unpacking libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Selecting previously unselected package python-mysqldb.
Preparing to unpack .../python-mysqldb_1.3.7-1.1_amd64.deb ...
Unpacking python-mysqldb (1.3.7-1.1) ...
Setting up mysql-common (5.8+1.0.2) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Setting up libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Setting up python-mysqldb (1.3.7-1.1) ...
root@2fb0da64a933:/home/test_scrapy# python 
Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.