mysqldb pythonインターフェースのインストール時に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によるコメントは、pythonが検索するパスにある/ usr / binディレクトリのmysql_configファイルへのシンボリックリンクを作成することで問題を解決します。
Alex Boschmans 2013年

2
これを行うだけ------------- apt-get install python-mysqldb
shadow0359

@AlexBoschmansのシンボリックリンク/usr/binが間違っています。Thi usr/local/my...の回答を参照してください。
Timo

回答:


701

mySQLdbはmysqlのpythonインターフェースですが、mysql自体ではありません。そして、どうやらmySQLdbにはコマンドmysql_configが必要なので、最初にそれをインストールする必要があります。

シェルから「mysql」を実行して、mysql自体をインストールしたかどうかを確認できますか?「mysql:コマンドが見つかりません」以外の応答が表示されます。

どのLinuxディストリビューションを使用していますか?Mysqlは、ほとんどのLinuxディストリビューション用にあらかじめパッケージ化されています。たとえば、debian / ubuntuの場合、mysqlのインストールは次のように簡単です

sudo apt-get install mysql-server

mysql-configは別のパッケージにあり、(ここでもdebian / ubuntuを想定して)インストールできます。

sudo apt-get install libmysqlclient-dev

mysqlの代わりにmariadbを使用している場合は、次を実行します。

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」にする必要がありますか?
コハンツ

4
なお、Debianのためにそれだsudo apt-get install mysql-serversudo apt-get install mysql-client
マルク・Juchli

2
最後に、「pip」が巨大な失敗であることを認めることができますか?このようなエラーは非常に面倒で、ほとんどのパッケージで発生するようです。Pythonには、パッケージ管理のための新しいソリューションが必要です。
エディサリバン

3
私のDebianでは、それはlibmysqlclient-devでした。実際、私はlibmariadbclient-devとlibmysqlclient-devの両方をインストールしました
mirek

187

私は使用しpython-mysqlてUbuntu 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 2013年

ありがとう!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 mysqlステップ8の前に実行することをお勧めします。


2
手順1〜4を適用するだけで機能しました。ありがとう!
kujiy

手順4では、を使用brew info mysqlして、mysqlインストールへの実際の/正しいパスを取得します。次に、PATH変更を永続化するには、export PATH..〜/ .bash_profile でを実行します。
Gino Mempin

ステップ1-4、brew link --overwrite mysql-connector-c私のMac での作業
飢餓

最後に、それは私のカタリナで動作します。指定オープン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 2016年

2
MySQL-pythonPythonパッケージとしてインストールする必要がある場合、またはvirtualenvを使用している場合、これが役立つ場合がありますyum install mysql-devel; venv/bin/pip install MySQL-python
hudolejev 2016年

2
CentOS 7でMariaDBを使用する場合は、sudo yum install mariadb-devel最初に実行してから、mysqlclientを次の方法でインストールできますpip install mysqlclient
Belter

どこからgcc-devel rpmを入手しましたか?
Fayaz


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
default-libmysqlclient-dev通常のlibmysqlclient-devパッケージにはインストール候補がないため、> = Debian Stretchを実行するときは、必ずをインストールしてください。
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:-Python mysqlクライアントをインストールする

sudo apt-get install mysqlclient

これはあなたの問題を解決します


ステップ2でこれを修正しました。
ソルトチキン

これにより、3時間私を悩ませていた私の問題が修正されました。ありがとうございました!!!
ヨジン

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関連のシンボリックリンクをmysql@5.7で実際に上書きする
  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


5

私のFedora 23マシンでは、以下を実行する必要がありました。

sudo dnf install mysql-devel

5

Alpine Linuxの場合:

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

MariaDBはMySQLのドロップイン置き換えであり、Alpine 3.2の新しい標準になりました。https://bugs.alpinelinux.org/issues/4264を参照してください


1
これにより、高山の画像はほぼ500MiBになり、画像サイズを小さくするために高山に到着しました
オスパー

libをビルドするにはpython3-devもインストールする必要があります
ospider

4

端末で次の行を実行できると思います

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

このmysql_configディレクトリは、MacOSx上のzendサーバー用です。あなたは次の行のようにLinuxのためにそれを行うことができます

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

これはデフォルトのlinux mysqlディレクトリです。


4

この問題があり、シンボリックリンクをに追加することで解決しましたmysql_config

私はmysqlをhomebrewでインストールし、これを出力で確認しました。

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

あなたがmysqlそれを得た方法に応じて、それはさまざまな場所になります。私の場合/usr/local/Cellar/mysql
、それがどこにあるかがわかったら、Pythonが探している場所へのシンボリックリンクを作成できるはずです。 /usr/local/mysql

これでうまくいきました。

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

4

私も同じ問題を抱えていました。私はこのチュートリアルに従ってUbuntu 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 install python-mysqldb

Python 2.5?非常に古いバージョンのUbuntu Server(Hardy 8.04?)を使用しているようです。サーバーが使用しているLinuxバージョンを確認してください。

ubuntuパッケージデータベースでのpython-mysql検索

追加情報:

mysql-pythonのREADMEから-

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

MySQL-pythonはRed Hat Linux 7.x以降にあらかじめパッケージ化されています。これには、Fedora CoreとRed Hat Enterprise Linuxが含まれます。上記のように、独自のRPMパッケージを構築することもできます。

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

python-mysqldb_ :: としてパッケージ化

# apt-get install python-mysqldb

またはSynapticを使用します。

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

Ubuntu ......

Debianと同じ。

脚注:Ubuntu 10.04より前のサーバーディストリビューションを実際に使用している場合は、公式サポートが終了しているため、後ではなく早くアップグレードする必要があります。


Debian 10 sudo apt-get install python-mysqldbを確認できます
Tedo Vrbanec

:これは、あなたがする必要があるすべてであるdev.mysql.com/doc/connector-python/en/...
Abhinandan Dubeyさん

2

この方法は、Mysqlがインストールされていることを知っていても、mysql_configが見つからない場合にのみ使用できます。これは、python installがシステムパスで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 install


2

これまでのところ、すべてのソリューション(Linux)sudoをインストールするには、またはroot権限が必要です。root権限がなく、がない場合の解決策は次のとおりですsudo。(いいえsudo apt install ...):

  1. libmysqlclient-devの.debファイルを、たとえばこのミラーからダウンロードします
  2. ダウンロードしたファイルに移動して実行しますdpkg -x libmysqlclient-dev_<version tag>.deb .これにより、usr。。
  3. ./usr/bin/mysql_configあなたにあるどこかにシンボリックリンク$PATH

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

  4. 今すぐ見つけることができるはずです mysql_config

Ubuntu 18.04でテスト済み。


これはCentOS 7で機能しますか?rootアクセスまたはdpkgがインストールされていない場合、どのようにすればよいですか?
ソヒル

独自の仮想環境で作業している限り、rootである必要はありません
BlackBear

2

macOS Mojaveの場合、追加の構成が必要でした。コンパイラーがopensslを見つけるには、設定が必要になる場合があります。

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

2

2020年にこの問題を解決する最も便利な方法は、別のPythonパッケージを使用することだと思います。他のバイナリソフトウェアをインストールする必要はありません。

これを試して

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

実際の誤差は

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

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

python-devまたはpython-develパッケージをインストールできない場合は、必要なバージョンのpythonソースを含むアーカイブをhttp://hg.python.org/からダウンロードし、ヘッダーファイルをインクルード用の適切なフォルダーに配置します。


1

入力するだけです:

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

これはこの問題を解決します。


3
あなたはmysql_configを持つエラーが発生した場合、これをistall:sudo apt-get install libmysqlclient-dev
ルチアーノD.モタ

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.