mysql_config tidak ditemukan saat menginstal antarmuka python mysqldb

478

Saya mencoba untuk mendapatkan skrip Python untuk berjalan di server linux saya terhubung melalui ssh. Script menggunakan mysqldb. Saya memiliki semua komponen lain yang saya butuhkan, tetapi ketika saya mencoba menginstal mySQLdb melalui setuptools seperti :,,

python setup.py install

Saya mendapatkan laporan kesalahan berikut yang terkait dengan mysql_configperintah.

sh: mysql_config: command not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

Adakah orang lain yang mengalami kesalahan ini dan jika demikian, bagaimana Anda mengatasinya / apa yang dapat saya lakukan untuk berhasil menginstal mysqldb?

pengguna904542
sumber
1
Hai @ user904542 - Saya telah mengedit pertanyaan Anda agar semoga sedikit lebih ringkas dan memberi Anda jawaban :) Jika Anda tidak menyukainya, atau ingin memberikan detail tambahan, ada tautan edit langsung di bawah pertanyaan Anda yang Anda dapat digunakan untuk memutar kembali ke sumber asli Anda, atau menambah perubahan yang telah saya buat.
3
Saya mengalami masalah yang sama persis, karena saya menginstal mysql dari sumber. jika Anda juga melakukannya, jalankan saja sesuatu seperti ini untuk membuat mysql_config tersedia: sudo ln -s / usr / local / mysql / bin / mysql_config / usr / bin / mysql_config atau tambahkan / usr / local / mysql / bin / ke path Anda.
Thi Duong Nguyen
Jika Anda telah menginstal mysql, komentar di atas oleh Thi Duong Nguyen memecahkan masalah dengan membuat symlink ke file mysql_config di direktori / usr / bin, yang berada di jalur yang akan dicari oleh python.
Alex Boschmans
2
lakukan saja ini ------------- apt-get install python-mysqldb
shadow0359
@AlexBoschmans symlinking /usr/binsalah, itu usr/local/my...lihat jawaban Thi.
Timo

Jawaban:

701

mySQLdb adalah antarmuka python untuk mysql, tetapi bukan mysql itu sendiri. Dan ternyata mySQLdb membutuhkan perintah 'mysql_config', jadi Anda harus menginstalnya terlebih dahulu.

Bisakah Anda mengonfirmasi bahwa Anda telah atau tidak menginstal mysql sendiri, dengan menjalankan "mysql" dari shell? Itu seharusnya memberi Anda jawaban selain "mysql: command not found".

Distribusi linux mana yang Anda gunakan? Mysql sudah dipaket untuk sebagian besar distribusi linux. Misalnya, untuk debian / ubuntu, menginstal mysql semudah

sudo apt-get install mysql-server

mysql-config ada dalam paket yang berbeda, yang dapat diinstal dari (sekali lagi, dengan asumsi debian / ubuntu):

sudo apt-get install libmysqlclient-dev

jika Anda menggunakan mariadb, drop in pengganti mysql, kemudian jalankan

sudo apt-get install libmariadbclient-dev

Referensi: https://github.com/JudgeGirl/Judge-sender/issues/4#issuecomment-186542797

amarillion
sumber
1
Membaca daftar paket ... Selesai membangun pohon ketergantungan Membaca informasi keadaan ... Selesai Catatan, memilih libmysqlclient15-dev, bukan libmysqlclient-dev Beberapa paket tidak dapat diinstal. Ini mungkin berarti bahwa Anda telah meminta situasi yang tidak mungkin atau jika Anda menggunakan distribusi yang tidak stabil bahwa beberapa paket yang diperlukan belum dibuat atau dipindahkan dari Incoming. Informasi berikut dapat membantu menyelesaikan situasi: Paket-paket berikut memiliki dependensi yang belum terpenuhi: libmysqlclient15-dev: Tergantung: zlib1g-dev tetapi tidak akan diinstal E: Paket yang rusak
pengguna904542
2
Haruskah 'sudo apt-get install mysql' menjadi 'sudo apt-get install mysql-server'?
Kohanz
4
Perhatikan bahwa untuk Debian itu sudo apt-get install mysql-serverdansudo apt-get install mysql-client
Marc Juchli
2
Bisakah kita akhirnya mengakui bahwa 'pip' adalah kegagalan kolosal? Kesalahan seperti ini sangat menyebalkan, dan tampaknya terjadi pada sebagian besar paket. Python sangat membutuhkan solusi baru untuk manajemen paket.
Eddie Sullivan
3
Bagi saya di Debian itu libmysqlclient-dev. Sebenarnya saya telah menginstal kedua libmariadbclient-dev libmysqlclient-dev
mirek
188

Saya menginstal python-mysqldi Ubuntu 12,04 menggunakan

pip install mysql-python

Pertama saya punya masalah yang sama:

Not Found "mysql_config"

Ini berhasil untuk saya

$ sudo apt-get install libmysqlclient-dev

Lalu saya punya masalah ini:

...
_mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio

compilación terminada.

error: command 'gcc' failed with exit status 1

Lalu aku mencoba

apt-get install python-dev

Dan kemudian saya senang :)

pip install mysql-python
    Installing collected packages: mysql-python
      Running setup.py install for mysql-python
        building '_mysql' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
        In file included from _mysql.c:44:0:
        /usr/include/mysql/my_config.h:422:0: aviso: se redefinió "HAVE_WCSCOLL" [activado por defecto]
        /usr/include/python2.7/pyconfig.h:890:0: nota: esta es la ubicación de la definición previa
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so

Successfully installed mysql-python
Cleaning up...
xtornasol512
sumber
1
Bekerja juga pada openSUSE, di mana "libmysqlclient-dev" menjadi "libmysqlclient-devel". Sekarang paket pip terinstal dengan baik. Terima kasih.
pbarill
Terima kasih! Bekerja juga di Ubuntu 14.04.1 LTS
Krasimir
menginstal header dev python menyelesaikan kesalahan Python.h yang hilang. Terima kasih.
Natus Drew
3
jika menggunakan python3.x, coba dengan apt-get install python3-dev.
Legolas Bloom
Ini tidak berfungsi untuk saya pada tanggal 14.04 - "E: Paket 'python-dev' tidak memiliki kandidat instalasi"
Rene Wooller
46

(Khusus untuk Mac OS X)

Saya telah mencoba banyak hal, tetapi serangkaian perintah ini akhirnya berhasil untuk saya.

  1. Install mysql
    brew install mysql
  2. brew unlink mysql
  3. brew install mysql-connector-c
  4. Tambahkan folder mysql bin ke PATH
    export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
  5. mkdir /usr/local/Cellar/lib/
  6. Buat symlink
    sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
  7. brew reinstall openssl( sumber )
  8. Akhirnya, instal mysql-client
    LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient

Pembaruan: Jika ini tidak berhasil, @vinyll menyarankan untuk berjalan brew link mysqlsebelum langkah 8.

Pulkit Pahwa
sumber
2
hanya menerapkan langkah 1-4 kemudian berhasil. Terima kasih!
kujiy
Untuk Langkah 4, gunakan brew info mysqluntuk mendapatkan jalur aktual / benar ke instalasi mysql. Kemudian untuk membuat PATHperubahan tetap ada, lakukan export PATH..di ~ / .bash_profile Anda.
Gino Mempin
langkah 1-4 dengan brew link --overwrite mysql-connector-ckarya di Mac saya
Hunger
Akhirnya, ini berfungsi pada Catalina saya. Gunakan sebutkan ssl terbuka sangat penting.
Lebih bahagia
4
Saya harus melakukan brew link mysqlsebelum langkah 8 untuk menjalankannya.
vinyll
37

Tentang Red Hat harus saya lakukan

sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python

Lalu berhasil.

Elliott
sumber
3
Bekerja untuk saya pada CentOS 7:yum install MySQL-python
hudolejev
2
Jika Anda perlu menginstal MySQL-pythonsebagai paket Python, atau menggunakan virtualenv, kekuatan ini membantu: yum install mysql-devel; venv/bin/pip install MySQL-python.
hudolejev
2
Jika Anda menggunakan MariaDB pada CentOS 7, jalankan sudo yum install mariadb-develterlebih dahulu, maka Anda dapat menginstal mysqlclient olehpip install mysqlclient
Belter
dari mana Anda mendapatkan rpm gcc-devel?
Fayaz
yum install mysql-develCentos 8
Diego Andrés Díaz Espinoza
33

Di bawah ini bekerja untuk saya di Ubuntu 12,04 LTS:

apt-get install libmysqlclient-dev python-dev

Meskipun berhasil, saya tetap melanjutkan untuk melakukan hal berikut:

export PATH=$PATH:/usr/local/mysql/bin/
nasowah
sumber
27

Saya mendapat kesalahan yang sama ketika mencoba menginstal mysql-python.

Beginilah cara saya memperbaikinya.

sudo PATH=/usr/local/mysql/bin/:$PATH pip install mysql-python

Masalahnya adalah bahwa penginstal tidak dapat menemukan mysql_config di jalur default. Sekarang bisa .. dan berhasil ..

 15 warnings generated.
    clang -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.8-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc -o build/lib.macosx-10.8-intel-2.7/_mysql.so -arch x86_64

Successfully installed mysql-python
Cleaning up...

Semoga ini membantu.

Terima kasih.

Mayank R Jain
sumber
Saya mengalami masalah yang sama menginstal MySQL secara lokal pada Mac yang menjalankan OSX 10.9.4 (Mavericks). Solusi ini juga bekerja untuk saya.
Deepend
20

Saya memperbaiki masalah ini dengan langkah-langkah berikut:

sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install
zhaozhi
sumber
1
Saat menjalankan> = Debian Stretch pastikan untuk menginstal default-libmysqlclient-dev, karena libmysqlclient-devpaket reguler tidak memiliki kandidat instalasi.
Bono
19

Perintah (mysql juga) mPATH mungkin hilang.

export PATH=$PATH:/usr/local/mysql/bin/

samwize
sumber
11

Langkah1 : - Instal Python3 & Python3-dev Keduanya

sudo apt-get install python3 python3-dev

Langkah2: - Instal Python & Mysql Connector

sudo apt-get install libmysqlclient-dev

langkah3: - Instal klien python mysql

sudo apt-get install mysqlclient

Ini akan Memecahkan Masalah Anda

Aka
sumber
Langkah 2 memperbaiki ini untuk saya.
saltchicken
Ini telah memperbaiki masalah saya yang telah menyadap saya selama 3 jam .. Terima kasih banyak !!!
Yeojin
9

Saya memperbaikinya dengan menginstal libmysqlclient:

sudo apt-get install libmysqlclient16-dev
thoslin
sumber
9

The MySQL-pythonpaket menggunakan mysql_configperintah untuk belajar tentang mysqlkonfigurasi pada host Anda. Tuan rumah Anda tidak memiliki mysql_configperintah.

Paket perpustakaan pengembangan MySQL (MySQL-devel-xxx) dari dev.mysql.com menyediakan perintah ini dan perpustakaan yang dibutuhkan oleh paket MySQL-python. The MySQL-develpaket yang ditemukan di download - daerah Server masyarakat. Nama paket perpustakaan pengembangan MySQL dimulai dengan MySQL-develdan beragam versi MySQL dan platform linux (mis MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm.)

Perhatikan bahwa Anda tidak perlu menginstal server mysql.

John Livingston
sumber
8

Paket libmysqlclient-dev sudah tidak digunakan lagi, jadi gunakan perintah di bawah ini untuk memperbaikinya.

Paket libmysqlclient-dev tidak tersedia, tetapi disebut oleh paket lain. Ini mungkin berarti bahwa paket tersebut hilang, telah usang, atau hanya tersedia dari sumber lain

sudo apt-get install default-libmysqlclient-dev
Rajathithan Rajasekar
sumber
6

Dalam centos 7 ini berfungsi untuk saya:

yum install mariadb-devel
pip install mysqlclient
Rajiv Sharma
sumber
5

Di mesin Fedora 23 saya, saya harus menjalankan yang berikut:

sudo dnf install mysql-devel
Raptor
sumber
5

Untuk Alpine Linux:

$ apk add mariadb-dev mariadb-client mariadb-libs

MariaDB adalah pengganti drop-in untuk MySQL dan menjadi standar baru pada Alpine 3.2. Lihat https://bugs.alpinelinux.org/issues/4264

tentang Harun
sumber
1
yang membuat gambar alpine saya hampir 500MiB, saya datang ke alpine untuk ukuran gambar yang lebih kecil
ospider
Saya juga harus menginstal python3-dev untuk membangun lib
ospider
4

Saya pikir, baris berikut dapat dieksekusi di terminal

 sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/

Direktori mysql_config ini untuk server zend di MacOSx. Anda dapat melakukannya untuk linux seperti baris berikut

sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/

Ini adalah direktori default mysql linux.

hkulekci
sumber
4

Saya punya masalah ini dan dipecahkan jika dengan menambahkan symlink ke mysql_config.

Saya telah menginstal mysql dengan homebrew dan melihat ini di output.

Error: The `brew link` step did not complete successfully

Tergantung bagaimana Anda mendapatkannya mysqlakan berada di tempat yang berbeda. Dalam kasus saya /usr/local/Cellar/mysql
Setelah Anda tahu di mana tempatnya, Anda harus dapat membuat tautan simbolis ke tempat python mencarinya. /usr/local/mysql

Ini berhasil untuk saya.

ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config
Schechter
sumber
4

Saya memiliki masalah yang sama. Saya menyelesaikannya dengan mengikuti tutorial ini untuk menginstal Python dengan python3-dev di Ubuntu 16.04:

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y python3-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

Dan sekarang Anda dapat mengatur lingkungan virtual Anda:

sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate
Otak Kecil
sumber
3

Anda perlu menginstal paket python-dev:

sudo apt-get install python-dev
ebarch
sumber
2

sudo apt-get install python-mysqldb

Python 2.5? Kedengarannya seperti Anda menggunakan versi Ubuntu Server yang sangat lama (Hardy 8.04?) - mohon konfirmasi versi Linux yang digunakan server.

pencarian python-mysql pada basis data paket ubuntu

Beberapa info tambahan:

Dari README dari mysql-python -

Red Hat Linux .............

MySQL-python sudah dipaket sebelumnya dalam Red Hat Linux 7.x dan yang lebih baru. Ini termasuk Fedora Core dan Red Hat Enterprise Linux. Anda juga dapat membuat paket RPM sendiri seperti dijelaskan di atas.

Debian GNU / Linux ................

Dikemas sebagai python-mysqldb_ ::

# apt-get install python-mysqldb

Atau gunakan Synaptic.

.. _ python-mysqldb: http://packages.debian.org/python-mysqldb

Ubuntu ......

Sama seperti dengan Debian.

Catatan Kaki: Jika Anda benar-benar menggunakan distribusi server yang lebih tua dari Ubuntu 10,04 maka Anda kehabisan dukungan resmi, dan harus meningkatkan lebih cepat daripada nanti.

Gary
sumber
Saya dapat mengkonfirmasi untuk Debian 10 sudo apt-get install python-mysqldb
Tedo Vrbanec
Ini semua yang perlu Anda lakukan: dev.mysql.com/doc/connector-python/en/…
Abhinandan Dubey
2

Metode ini hanya untuk mereka yang tahu bahwa Mysql diinstal tetapi masih mysql_config tidak dapat ditemukan. Ini terjadi jika instalasi python tidak dapat menemukan mysql_config di jalur sistem Anda, yang sebagian besar terjadi jika Anda telah melakukan instalasi melalui .dmg Paket Mac atau diinstal di beberapa jalur kustom. Cara termudah dan terdokumentasi oleh MySqlDB adalah mengubah situs.cfg . Temukan mysql_config yang mungkin ada di / usr / local / mysql / bin / dan ubah variabelnya yaitu mysql_config seperti di bawah ini dan jalankan instalasi lagi. Jangan lupa untuk mengomentari itu dengan menghapus "#"

Ubah di bawah garis

"#mysql_config = / usr / local / bin / mysql_config"

untuk

"mysql_config = / usr / local / mysql / bin / mysql_config"

tergantung pada jalur di sistem Anda.

Ngomong-ngomong saya menggunakan python install setelah mengubah situs.cfg

sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install

Ahsan.Amin
sumber
2

Sejauh ini, semua solusi (Linux) memerlukan sudoatau rooting hak untuk menginstal. Berikut adalah solusi jika Anda tidak memiliki hak root dan tanpa hak akses sudo. (tidak sudo apt install ...):

  1. Unduh file .deb dari libmysqlclient-dev, misalnya dari mirror ini
  2. Arahkan ke file yang diunduh dan jalankan dpkg -x libmysqlclient-dev_<version tag>.deb .Ini akan mengekstrak folder bernamausr .
  3. Simbol ./usr/bin/mysql_configke suatu tempat yang ditemukan di Anda $PATH:

    ln -s `pwd` /usr/bin/mysql_config FOLDER_IN_YOUR_PATH

  4. Seharusnya sekarang dapat ditemukan mysql_config

Diuji pada Ubuntu 18.04.

JalankanOrVeith
sumber
Apakah ini berfungsi di CentOS 7? Dengan asumsi saya tidak memiliki akses root atau dpkg diinstal, bagaimana saya harus mendekatinya?
Sohil
Tidak perlu menjadi root selama Anda bekerja di lingkungan virtual Anda sendiri
BlackBear
2

Untuk macOS Mojave, konfigurasi tambahan diperlukan, agar kompiler menemukan openssl, Anda mungkin perlu mengatur:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
Haidar Zeineddine
sumber
2

Saya pikir cara paling mudah untuk menyelesaikan masalah ini pada tahun 2020 adalah menggunakan paket python lain. Kami tidak perlu menginstal perangkat lunak biner lainnya.

Coba ini

pip install mysql-connector-python

lalu

import mysql.connector

mydb = mysql.connector.connect(
          host="",
          user="",
          passwd="",
          database=""
          )      
cursor = mydb.cursor( buffered=True)
cursor.execute('show tables;')
cursor.execute('insert into test values (null, "a",10)')
mydb.commit()
mydb.disconnect()

xfdywy
sumber
1

Saya mengalami masalah yang sama, baru saja menambahkan jalur di mana * mysql_config * berada pada variabel lingkungan PATH dan itu berhasil untuk saya.

pamflet
sumber
1

sudo apt-get build-dep python-mysqldb akan menginstal semua dependensi untuk membangun paket dari PIP / easy_install

Thomas Grainger
sumber
1

Seperti kesalahan sebenarnya

gcc ... -I/usr/include/python2.7 ...

_mysql.c:29:20: error: Python.h: No such file or directory

dan Jika Anda tidak dapat menginstal paket python-dev atau python-devel, Anda dapat mengunduh arsip dengan versi sumber python yang diperlukan dari http://hg.python.org/ dan menempatkan file header di folder yang benar untuk menyertakan

Oleg Neumyvakin
sumber
1

Ketik saja:

$ sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python

Ini akan menyelesaikan masalah ini.

Luciano D. Mota
sumber
3
Jika Anda mendapatkan kesalahan dengan mysql_config, lakukan ini:sudo apt-get install libmysqlclient-dev
Luciano D. Mota
1

Di CentOS 7, hal-hal berikut harus dilakukan:

#step1:install mysql 
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

#step2:
sudo yum install mysql-devel
DachuanZhao
sumber