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?


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


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...

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.


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.


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/

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.


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

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/


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


Langkah 2 memperbaiki ini untuk saya.
saltchicken

Ini telah memperbaiki masalah saya yang telah menyadap saya selama 3 jam .. Terima kasih banyak !!!
Yeojin

10

Jika Anda menggunakan MacOS dan sudah menginstal mysql@5.7 via brew, instal:

  1. brew install mysql-connector-c
  2. brew unlink mysql@5.7
  3. brew link --overwrite --dry-run mysql@5.7 pertama, untuk melihat symlink apa yang ditimpa
  4. brew link --overwrite --force mysql@5.7 untuk benar-benar menimpa symlink terkait mysql dengan mysql@5.7
  5. pip install mysqlclient

9

Saya memperbaikinya dengan menginstal libmysqlclient:

sudo apt-get install libmysqlclient16-dev

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.


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

6

Dalam centos 7 ini berfungsi untuk saya:

yum install mariadb-devel
pip install mysqlclient

5

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

sudo dnf install mysql-devel


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.


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

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

3

Anda perlu menginstal paket python-dev:

sudo apt-get install python-dev

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.


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


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.


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"

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


1

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


1

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


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


1

Ketik saja:

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

Ini akan menyelesaikan masalah ini.


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
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.