mysqldb 파이썬 인터페이스를 설치할 때 mysql_config를 찾을 수 없음


478

ssh를 통해 연결된 Linux 서버에서 Python 스크립트를 실행하려고합니다. 스크립트는 mysqldb를 사용합니다. 필요한 다른 모든 구성 요소가 있지만 setuptools를 통해 mySQLdb를 설치하려고 할 때 다음과 같이하십시오.

python setup.py install

mysql_config명령 과 관련된 다음 오류 보고서가 표시 됩니다.

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

다른 사람 이이 오류를 겪었습니까? 그렇다면 어떻게 해결 했습니까? mysqldb를 성공적으로 설치하려면 어떻게해야합니까?


1
안녕하세요 @ user904542-희망적으로 좀 더 간결하게하고 답변을 얻을 수 있도록 질문을 편집했습니다.) 마음에 들지 않거나 추가 세부 정보를 제공하려는 경우 질문 바로 아래에 편집 링크가 있습니다. 원본으로 롤백하거나 변경 사항을 추가하는 데 사용할 수 있습니다.

3
소스에서 mysql을 설치했기 때문에 똑같은 문제가 발생했습니다. 그렇게 할 경우 mysql_config를 다음과 같이 실행하십시오 : sudo ln -s / usr / local / mysql / bin / mysql_config / usr / bin / mysql_config 또는 경로에 / usr / local / mysql / bin /을 추가하십시오.
Thi Duong Nguyen

이미 mysql을 설치했다면 Thi Duong Nguyen의 위의 주석은 / usr / bin 디렉토리의 python이 검색 할 경로에있는 mysql_config 파일에 대한 심볼릭 링크를 만들어 문제를 해결합니다.
Alex Boschmans 2012 년

2
그냥 이것을해라 ------------- apt-get install python-mysqldb
shadow0359

@AlexBoschmans symlinking /usr/bin이 잘못되었습니다 usr/local/my.... Thi의 답변을 참조하십시오.
Timo

답변:


701

mySQLdb는 mysql을위한 python 인터페이스이지만 mysql 자체는 아니다. 분명히 mySQLdb에는 'mysql_config'명령이 필요하므로 먼저 설치해야합니다.

쉘에서 "mysql"을 실행하여 mysql 자체를 설치했거나 설치하지 않았 음을 확인할 수 있습니까? "mysql : command not found"이외의 응답을 제공해야합니다.

어떤 리눅스 배포판을 사용하고 있습니까? MySQL은 대부분의 Linux 배포판에 사전 패키지되어 있습니다. 예를 들어, 데비안 / 우분투의 경우 mysql을 설치하는 것이 쉽습니다.

sudo apt-get install mysql-server

mysql-config는 다른 패키지에 있으며, 데비안 / 우분투를 가정하면 다음과 같이 설치할 수 있습니다.

sudo apt-get install libmysqlclient-dev

mariadb를 사용하는 경우 mysql을 대체하십시오.

sudo apt-get install libmariadbclient-dev

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


1
패키지 목록 읽기 ... 완료된 종속성 트리 상태 정보 읽기 ... 완료, libmysqlclient-dev 대신 libmysqlclient15-dev 선택 일부 패키지를 설치할 수 없습니다. 이는 불가능한 상황을 요청했거나 일부 필수 패키지가 아직 작성되지 않았거나 수신에서 제외 된 불안정한 분배를 사용중인 경우를 의미 할 수 있습니다. 다음 정보는 상황을 해결하는 데 도움이 될 수 있습니다. 다음 패키지는 충족되지 않은 종속성을 가지고 있습니다. libmysqlclient15-dev : 종속 : zlib1g-dev 그러나 설치되지 않습니다 E : 손상된 패키지
user904542

2
'sudo apt-get install mysql'은 'sudo apt-get install mysql-server'여야합니까?
Kohanz

4
데비안의 경우 sudo apt-get install mysql-serversudo apt-get install mysql-client
Marc Juchli

2
'pip'가 엄청난 실패라는 것을 마침내 인정할 수 있습니까? 이와 같은 오류는 그러한 고통이며 대부분의 패키지에서 발생하는 것으로 보입니다. 파이썬은 패키지 관리를위한 새로운 솔루션이 필요합니다.
Eddie Sullivan

3
데비안에서는 libmysqlclient-dev였습니다. 사실 나는 모두 libmariadbclient-DEV libmysqlclient-dev에 설치 한
미렉

187

나는 python-mysqlUbuntu 12.04 에 설치 하고 있었다

pip install mysql-python

먼저 같은 문제가있었습니다.

Not Found "mysql_config"

이것은 나를 위해 일했다

$ sudo apt-get install libmysqlclient-dev

그런 다음이 문제가 발생했습니다.

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

그런 다음 시도했다

apt-get install python-dev

그리고 나는 행복했다 :)

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
"libmysqlclient-dev"가 "libmysqlclient-devel"이되는 openSUSE에서도 작동합니다. 이제 pip 패키지가 정상적으로 설치됩니다. 감사.
pbarill

감사! Ubuntu 14.04.1에서도 작동합니다. LTS
Krasimir

python dev 헤더를 설치하면 누락 된 Python.h 오류가 해결되었습니다. 감사.
Natus Drew

3
python3.x를 사용하는 경우 apt-get install python3-dev로 시도하십시오.
Legolas Bloom

이것은 14.04에서 나에게 효과가 없었다- "E : 'python-dev'패키지는 설치 후보가 없다"
Rene Wooller

46

(Mac OS X에만 해당)

나는 많은 것을 시도했지만 이러한 명령 세트가 마침내 나를 위해 일했습니다.

  1. 설치 mysql
    brew install mysql
  2. brew unlink mysql
  3. brew install mysql-connector-c
  4. mysql bin 폴더를 PATH에 추가하십시오.
    export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
  5. mkdir /usr/local/Cellar/lib/
  6. 심볼릭 링크 만들기
    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( 소스 )
  8. 마지막으로 mysql-client를 설치하십시오.
    LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient

업데이트 : 이것이 작동하지 않으면 @vinyll은 brew link mysql8 단계 전에 실행하는 것이 좋습니다 .


2
1-4 단계를 적용하면 효과가 있습니다. 감사!
kujiy

4 단계의 brew info mysql경우 mysql 설치의 실제 / 올바른 경로를 얻는 데 사용 하십시오. 그런 다음 PATH변경 사항을 유지하려면 export PATH..~ / .bash_profile에서를 수행하십시오 .
Gino Mempin

brew link --overwrite mysql-connector-c내 Mac 에서 작동하는 1-4 단계
기아

마지막으로 카탈리나에서 작동합니다. Open SSL을 지정하는 것이 매우 중요합니다.
행복한

4
나는해야했다 brew link mysql가 실행 얻기 위해 8 단계 전에.
vinyll

37

Red Hat에서해야 할 일

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

그런 다음 효과가있었습니다.


3
CentOS 7에서 저를 위해 일했습니다 :yum install MySQL-python
hudolejev

2
MySQL-pythonPython 패키지 로 설치해야 하거나 virtualenv를 사용하는 경우 다음이 도움이 될 수 있습니다 yum install mysql-devel; venv/bin/pip install MySQL-python..
hudolejev

2
CentOS 7에서 MariaDB를 사용하는 경우 sudo yum install mariadb-devel먼저 실행 하면 다음과 같이 mysqlclient를 설치할 수 있습니다.pip install mysqlclient
Belter

gcc-devel rpm은 어디서 얻었습니까?
Fayaz

yum install mysql-develCentos 8
Diego Andrés Díaz Espinoza

33

아래는 Ubuntu 12.04 LTS에서 나를 위해 일했습니다.

apt-get install libmysqlclient-dev python-dev

그것이 효과가 있었지만 여전히 아래 작업을 수행했습니다.

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

27

설치하는 동안 같은 오류가 발생했습니다 mysql-python.

이것이 내가 고친 방법입니다.

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

문제는 설치 프로그램이 기본 경로에서 mysql_config를 찾을 수 없다는 것입니다. 이제 .. 그리고 작동했습니다 ..

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

도움이 되었기를 바랍니다.

감사.


OSX 10.9.4 (Mavericks)를 실행하는 Mac에 MySQL을 로컬로 설치하는 것과 동일한 문제가 발생했습니다. 이 솔루션은 저에게도 효과적이었습니다.
Deepend

20

다음 단계로이 문제를 해결했습니다.

sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install

1
> = Debian Stretch를 실행하는 default-libmysqlclient-dev경우 일반 libmysqlclient-dev패키지에는 설치 후보가 없으므로 설치해야합니다.
Bono

19

명령 (mysql도) mPATH가 누락되었을 수 있습니다.

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


11

1 단계 : -Python3 및 Python3-dev 모두 설치

sudo apt-get install python3 python3-dev

2 단계 : -Python & Mysql 커넥터 설치

sudo apt-get install libmysqlclient-dev

step3 :- 파이썬 mysql 클라이언트 설치

sudo apt-get install mysqlclient

문제가 해결됩니다


2 단계에서이 문제를 해결했습니다.
saltchicken

3 시간 동안 버그가 발생한 문제가 해결되었습니다. 정말 감사합니다 !!!
Yeojin

10

macOS를 사용하고 있고 brew install을 통해 mysql@5.7을 이미 설치 한 경우 :

  1. brew install mysql-connector-c
  2. brew unlink mysql@5.7
  3. brew link --overwrite --dry-run mysql@5.7 먼저 어떤 심볼릭 링크를 덮어 쓰는지 확인하십시오.
  4. brew link --overwrite --force mysql@5.7 mysql@5.7로 mysql 관련 symlink를 실제로 덮어 쓰는 방법
  5. pip install mysqlclient

9

libmysqlclient를 설치하여 수정했습니다.

sudo apt-get install libmysqlclient16-dev

9

MySQL-python패키지는 사용 mysql_config에 대해 배울 명령을 mysql호스트에 구성. 호스트에게 mysql_config명령 이 없습니다 .

dev.mysql.com의 MySQL 개발 라이브러리 패키지 (MySQL-devel-xxx)는이 명령과 MySQL-python 패키지에 필요한 라이브러리를 제공합니다. MySQL-devel커뮤니티 서버 영역 - 패키지는 다운로드에서 발견된다. MySQL 개발 라이브러리 패키지 이름 MySQL-devel은 MySQL 버전 및 Linux 플랫폼 (예 :)으로 시작 하고 다양 MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm합니다.

mysql 서버를 설치할 필요는 없습니다.


8

libmysqlclient-dev 패키지는 더 이상 사용되지 않으므로 아래 명령을 사용하여 수정하십시오.

libmysqlclient-dev 패키지는 사용할 수 없지만 다른 패키지에서 참조합니다. 이는 패키지가 누락되었거나 더 이상 사용되지 않거나 다른 소스에서만 사용할 수 있음을 의미 할 수 있습니다.

sudo apt-get install default-libmysqlclient-dev

6

centos 7에서는 이것이 나를 위해 작동합니다.

yum install mariadb-devel
pip install mysqlclient

5

Fedora 23 컴퓨터에서 다음을 실행해야했습니다.

sudo dnf install mysql-devel


4

터미널에서 다음 줄을 실행할 수 있다고 생각합니다.

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

이 mysql_config 디렉토리는 MacOSx의 zend 서버용입니다. 다음 줄과 같이 리눅스에서 할 수 있습니다.

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

이것이 기본 리눅스 mysql 디렉토리입니다.


4

이 문제가 있었고에 심볼릭 링크를 추가하여 해결했습니다 mysql_config.

나는 homebrew와 함께 mysql을 설치했고 이것을 출력에서 ​​보았습니다.

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

당신이 mysql그것을 얻는 방법에 따라 다른 장소에있을 것입니다. 제 경우에는 /usr/local/Cellar/mysql
일단 그것이 어디에 있는지 알게되면 파이썬이 그것을 찾는 곳과 상징적 인 링크를 만들 수 있어야합니다. /usr/local/mysql

이것은 나를 위해 일했습니다.

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

4

나는 같은 문제가 있었다. 이 튜토리얼 을 따라 우분투 16.04에 python3-dev로 Python을 설치 하여 해결했습니다 .

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

이제 가상 환경을 설정할 수 있습니다.

sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate

3

python-dev 패키지를 설치해야합니다 :

sudo apt-get install python-dev

2

sudo apt-get 설치 python-mysqldb

파이썬 2.5? 아주 오래된 버전의 Ubuntu Server (Hardy 8.04?)를 사용하고있는 것 같습니다. 서버에서 사용하는 Linux 버전을 확인하십시오.

우분투 패키지 데이터베이스에서 python-mysql 검색

추가 정보 :

mysql-python의 README에서-

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

MySQL-python은 Red Hat Linux 7.x 이상에 사전 패키지되어 있습니다. 여기에는 Fedora Core 및 Red Hat Enterprise Linux가 포함됩니다. 위에서 설명한대로 고유 한 RPM 패키지를 빌드 할 수도 있습니다.

데비안 GNU / 리눅스 ................

python-mysqldb_ : 로 패키지

# apt-get install python-mysqldb

또는 시냅틱을 사용하십시오.

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

우분투 ......

데비안과 동일합니다.

각주 : Ubuntu 10.04 이전의 서버 배포를 실제로 사용하는 경우 공식 지원을받지 못하므로 나중에보다 빨리 업그레이드해야합니다.


나는 데비안 (10)에 대해 확인할 수는 sudo apt-get을 파이썬 mysqldb를 설치
Tedo Vrbanec

이것은 당신이해야 할 모든 것입니다 : dev.mysql.com/doc/connector-python/en/...
Abhinandan Dubey

2

이 방법은 Mysql이 설치되어 있지만 여전히 mysql_config를 찾을 수 없다는 것을 알고있는 사람들을위한 것입니다. python 설치가 시스템 경로에서 mysql_config를 찾을 수없는 경우에 발생합니다. 주로 .dmg Mac 패키지를 통해 설치했거나 일부 사용자 정의 경로에 설치 한 경우에 발생합니다. MySqlDB의 가장 쉽고 문서화 된 방법은 site.cfg를 변경하는 입니다. 아마도 / usr / local / mysql / bin /에 있는 mysql_config를 찾아서 아래와 같이 변수 mysql_config를 변경 하고 설치를 다시 실행하십시오. "#"을 제거하여 주석을 해제하는 것을 잊지 마십시오

아래 줄 변경

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

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

시스템의 경로에 따라

그런데 site.cfg를 변경 한 후 python install을 사용 했습니다.

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


2

지금까지 모든 솔루션 (Linux) sudo에 설치하려면 루트 권한이 필요합니다 . 루트 권한이없고없는 경우 해결책이 있습니다 sudo. (아니요 sudo apt install ...) :

  1. 예를 들어이 미러 에서 libmysqlclient-dev의 .deb 파일을 다운로드하십시오.
  2. 다운로드 한 파일로 이동하여 dpkg -x libmysqlclient-dev_<version tag>.deb .라는 폴더를 추출합니다 usr.
  3. ./usr/bin/mysql_config당신이 찾을 수있는 곳으로의 Symlink $PATH:

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

  4. 이제 찾을 수 있어야합니다 mysql_config

우분투 18.04에서 테스트되었습니다.


CentOS 7에서 작동합니까? 루트 액세스 나 dpkg가 설치되어 있지 않다면 어떻게 접근해야합니까?
Sohil

자신의 가상 환경에서 일하는 한 뿌리를 내릴 필요가 없습니다.
BlackBear

2

macOS Mojave의 경우 추가 구성이 필요했습니다. 컴파일러가 openssl 을 찾으 려면 다음을 설정해야합니다.

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

2

2020 년 에이 문제를 해결하는 가장 편리한 방법은 다른 파이썬 패키지를 사용하는 것입니다. 다른 바이너리 소프트웨어는 설치할 필요가 없습니다.

이 시도

pip install mysql-connector-python

그리고

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

같은 문제가 발생하여 * mysql_config *가있는 환경 변수 PATH에 경로를 추가하고 나에게 도움이되었습니다.


1

sudo apt-get build-dep python-mysqldb PIP / easy_install에서 패키지를 빌드하기 위해 모든 종속성을 설치합니다


1

실제 오류는

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

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

python-dev 또는 python-devel 패키지를 설치할 수없는 경우 http://hg.python.org/ 에서 필요한 버전의 Python 소스가 포함 된 아카이브를 다운로드 하고 포함 할 적절한 폴더에 헤더 파일을 배치 할 수 있습니다


1

그냥 입력하십시오 :

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

이것은이 문제를 해결합니다.


3
mysql_config에 오류가 발생하면 다음과 같이하십시오.sudo apt-get install libmysqlclient-dev
Luciano D. Mota

1

CentOS 7에서 다음을 수행해야합니다.

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

#step2:
sudo yum install mysql-devel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.