mysql_config no se encuentra al instalar la interfaz python de mysqldb

Estoy intentando obtener un script de Python para ejecutarse en el servidor linux al que estoy conectado a través de ssh. El script utiliza mysqldb. Tengo todos los demás componentes que necesito, pero cuando bash instalar mySQLdb a través de setuptools como:

python setup.py install 

Obtengo el siguiente informe de error relacionado con el comando mysql_config .

 sh: mysql_config: command not found Traceback (most recent call last): File "setup.py", line 15, in  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 

¿Alguien más ha encontrado este error? En caso afirmativo, ¿cómo lo resolvió / qué puedo hacer para instalar mysqldb correctamente?

mySQLdb es una interfaz de python para mysql, pero no es mysql en sí. Y al parecer mySQLdb necesita el comando ‘mysql_config’, por lo que primero debes instalarlo.

¿Puede confirmar que hizo o no instaló mysql en sí mismo ejecutando “mysql” desde el shell? Eso debería darte una respuesta que no sea “mysql: comando no encontrado”.

¿Qué distribución de linux estás usando? Mysql está preempaquetado para la mayoría de las distribuciones de Linux. Por ejemplo, para debian / ubuntu, instalar mysql es tan fácil como

 sudo apt-get install mysql-server 

mysql-config está en un paquete diferente, que se puede instalar desde (nuevamente, asumiendo debian / ubuntu):

 sudo apt-get install libmysqlclient-dev 

Si está usando mariadb, la sustitución de mysql, luego ejecute

 sudo apt-get install libmariadbclient-dev 

Estaba instalando python-mysql en Ubuntu 12.04 usando

 pip install mysql-python 

Primero tuve el mismo problema:

 Not Found "mysql_config" 

Esto funciono para mi

 $ sudo apt-get install libmysqlclient-dev 

Entonces tuve este problema:

 ... _mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio comstackción terminada. error: command 'gcc' failed with exit status 1 

Entonces lo intenté con

 apt-get install python-dev 

Y luego fui feliz 🙂

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

Lo siguiente me funcionó en Ubuntu 12.04 LTS:

 apt-get install libmysqlclient-dev python-dev 

A pesar de que funcionó, seguí adelante para hacer lo siguiente:

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

En Red Hat tuve que hacer

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

Entonces funcionó.

Obtuve el mismo error al intentar instalar mysql-python .

Así es como lo arreglé.

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

El problema fue que el instalador no pudo encontrar mysql_config en la ruta predeterminada. Ahora puede … y funcionó …

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

Espero que esto ayude.

Gracias.

He solucionado este problema con los siguientes pasos:

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

Es posible que falten los comandos (mysql también) mPATH.

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

(Específico para mac) He intentado muchas cosas, pero este conjunto de comandos finalmente me funcionó.

  1. brew install mysql # install mysql
  2. brew unlink mysql
  3. brew install mysql-connector-c
  4. export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH # update path y configura la carpeta bin de mysql como path
  5. sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib # create symlink
  6. pip install mysqlclient # instalar mysql-client finalmente

Lo arreglé instalando libmysqlclient:

 sudo apt-get install libmysqlclient16-dev 

El paquete MySQL-python está usando el comando mysql_config para conocer la configuración de mysql en su host. Su host no tiene el comando mysql_config .

El paquete de bibliotecas de desarrollo de MySQL (MySQL-devel-xxx) de dev.mysql.com proporciona este comando y las bibliotecas que necesita el paquete MySQL-python. Los paquetes MySQL-devel se encuentran en el área de descarga – servidor de comunidad. Los nombres de los paquetes de la biblioteca de desarrollo de MySQL comienzan con MySQL-devel y varían según la versión de MySQL y la plataforma Linux (por ejemplo, MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm ).

Tenga en cuenta que no es necesario instalar el servidor mysql.

En mi máquina Fedora 23 tuve que ejecutar lo siguiente:

 sudo dnf install mysql-devel 

Para Alpine Linux:

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

MariaDB es un reemplazo directo para MySQL y se convirtió en el nuevo estándar a partir de Alpine 3.2. Ver https://bugs.alpinelinux.org/issues/4264

Creo que las siguientes líneas pueden ejecutarse en el terminal.

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

Este directorio mysql_config es para el servidor zend en MacOSx. Puedes hacerlo por linux como las siguientes lineas.

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

Este es el directorio mysql linux predeterminado.

Tuve estos problemas y los resolví si agregaba un enlace simbólico a mysql_config .

Instalé mysql con homebrew y lo vi en la salida.

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

Dependiendo de cómo tengas mysql estará en diferentes lugares. En mi caso /usr/local/Cellar/mysql
Una vez que sepa dónde está, debería poder colocar un enlace simbólico a donde Python lo está buscando. /usr/local/mysql

Esto funcionó para mí.

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

Si estás en macOS y ya has instalado mysql@5.7 a través de brew install:

  1. brew install mysql-connector-c
  2. brew unlink mysql@5.7
  3. brew link --overwrite --dry-run mysql@5.7 primero, para ver qué enlaces simbólicos se están sobrescribiendo
  4. brew link --overwrite --force mysql@5.7 para sobrescribir los enlaces simbólicos relacionados con mysql con mysql@5.7
  5. pip install mysqlclient

Necesitas instalar el paquete python-dev:

 sudo apt-get install python-dev 

En centos 7 esto me funciona:

 yum install mariadb-devel pip install mysqlclient 

sudo apt-get install python-mysqldb

Python 2.5? Parece que está utilizando una versión muy antigua de Ubuntu Server (¿Hardy 8.04?), Confirme qué versión de Linux usa el servidor.

Python-mysql busca en la base de datos de paquetes de Ubuntu

Alguna información adicional:

Desde el README de mysql-python –

Red Hat Linux ………….

MySQL-python está preempaquetado en Red Hat Linux 7.xy más reciente. Esto incluye Fedora Core y Red Hat Enterprise Linux. También puede crear sus propios paquetes RPM como se describe anteriormente.

Debian GNU / Linux …………….

Empaquetado como python-mysqldb _ ::

 # apt-get install python-mysqldb 

O utilizar Synaptic.

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

Ubuntu ……

Igual que con Debian.

Nota al pie: Si realmente está utilizando una distribución de servidor anterior a Ubuntu 10.04, entonces no tiene soporte oficial, y debería actualizar más temprano que tarde.

Este método es solo para aquellos que saben que Mysql está instalado pero aún no se puede encontrar mysql_config. Esto sucede si la instalación de python no puede encontrar mysql_config en la ruta de su sistema, lo que ocurre principalmente si ha realizado la instalación a través del paquete .dmg Mac o se ha instalado en alguna ruta personalizada. La forma más fácil y documentada de MySqlDB es cambiar el sitio.cfg . Encuentre el archivo mysql_config que probablemente se encuentre en / usr / local / mysql / bin / y cambie la variable, es decir, mysql_config como se muestra a continuación, y ejecute la instalación nuevamente. No olvides anular el comentario eliminando “#”

Cambiar por debajo de la línea

“#mysql_config = / usr / local / bin / mysql_config”

a

“mysql_config = / usr / local / mysql / bin / mysql_config”

Dependiendo de la ruta en su sistema.

Por cierto, utilicé python install después de cambiar el sitio.cfg

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

Encontré el mismo problema, solo agregué la ruta donde * mysql_config * residía en la variable de entorno PATH y funcionó para mí.

sudo apt-get build-dep python-mysqldb instalará todas las dependencias para comstackr el paquete desde PIP / easy_install

Como error real es

 gcc ... -I/usr/include/python2.7 ... _mysql.c:29:20: error: Python.h: No such file or directory 

y Si no puede instalar los paquetes python-dev o python-devel, puede descargar el archivo con la versión necesaria de las fonts de python desde http://hg.python.org/ y colocar los archivos de encabezados en la carpeta adecuada para incluirlos

Sólo tipo:

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

Esto solucionará estos problemas.

Hasta ahora, todas las soluciones (Linux) requieren derechos de sudo o root para instalar. Aquí hay una solución si no tiene derechos de root y sin sudo . (No hay instalación de sudo apt install ... ):

  1. Descargue el archivo .deb del archivo libmysqlclient-dev, por ejemplo, desde este espejo
  2. Navegue hasta el archivo descargado y ejecute dpkg -x libmysqlclient-dev_.deb . Esto extraerá una carpeta llamada usr .
  3. Symlink ./usr/bin/mysql_config a algún lugar que se encuentre en su $PATH :

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

  4. Ahora debería poder encontrar mysql_config

Probado en Ubuntu 18.04.

Yo tuve el mismo problema. Lo resolví siguiendo este tutorial para instalar Python con python3-dev en 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 

Y ahora puedes configurar tu entorno virtual:

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

Para macOS Mojave, se requería una configuración adicional, para que los comstackdores encuentren openssl que deba configurar:

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

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

No obstante, también debe instalar python-dev, los paquetes como MySQL-python se comstackn desde la fuente. Los paquetes pythonx.x-dev contienen los archivos de encabezado necesarios para vincularlos con python. ¿Por qué instalar numpy requiere python-dev en Kubuntu 12.04?

Resolví el problema ejecutando el siguiente comando:

 pip install mysqlclient