mysql_configが見つからないエラーは、mysqlclientの旧ソースビルドが必要なツールを実行できない状態です。DBへの接続やパスワード認証に進む前の問題なので、DB再起動・権限変更では切り分けません。
旧mysql_configと現行pkg-configを分ける
公式の変更履歴では2.2.0でPOSIXビルドの検出方式がmysql_configからpkg-configへ変わりました。2026年10月確認の2.3.0のsetup.pyもpkg-configを使います。掲載ログの1.4.2.post1と現行版を同じコマンドで直せるとは限りません。まず依存ファイルやpipログで、実際に選ばれた版とソース配布かwheelかを確認してください。
| 失敗した段階 | 確認するもの |
|---|---|
| 旧版のmysql_config未検出 | 旧版の要件、開発ツールの実パス、ビルド時のPATH。ホストにあってもコンテナ内から見えるとは限らない |
| pkg-configがない / パッケージ未検出 | pkg-config本体と.pcファイル、開発ライブラリ、PKG_CONFIG_PATH。コマンドの存在だけでは検出成功にならない |
| コンパイル/リンク失敗 | Python用とDBクライアント用のヘッダー、コンパイラ、CPU/ABI、実際の最初のエラー |
| インポート時の共有ライブラリ不足 | 実行コンテナにも対応ライブラリがあるか。ビルド用環境だけの導入では不十分な場合がある |
| インポート後の接続失敗 | 接続先/ソケット/TLS/認証。ビルドの問題とは別に調べる |
変更せずにPythonとツールの所在を確認する
次のPython 3用スクリプトは、実行したPythonとインストール済みの配布版、PATH上のツールを表示するだけです。DB接続・ドライバのインポート・インストール・サブプロセス実行はしません。未導入はnullになります。パスにはユーザー名等を含み得るため、出力をそのまま公開しないでください。
"""Print build-context metadata only; no installs, DB access or environment dump."""
import importlib.metadata
import json
import platform
import shutil
import sys
def inspect_build():
try:
version = importlib.metadata.version("mysqlclient")
except importlib.metadata.PackageNotFoundError:
version = None
return {
"python": platform.python_version(),
"executable": sys.executable,
"system": platform.system(),
"machine": platform.machine(),
"installed_mysqlclient": version,
"mysql_config": shutil.which("mysql_config"),
"pkg_config": shutil.which("pkg-config"),
}
if __name__ == "__main__":
print(json.dumps(inspect_build(), ensure_ascii=True, indent=2))
対象の仮想環境/ビルドコンテナ内で実行します。この結果は配布版メタデータと実行ファイルの所在であり、.pcファイルの発見・コンパイル・インポート・DB通信の成功を保証しません。
OS別の導入前提と安全な確認順
- OS/CPU、Pythonとmysqlclientの対象版、失敗したビルド環境を記録し、公式READMEと照合する。Pythonの版を変えるだけで依存関係全体が適合するとは限らない。
- LinuxではPython開発ヘッダー、クライアント開発ヘッダー/ライブラリ、コンパイラ、pkg-configの要否を確認する。公式READMEのDebian/Ubuntu例とRed Hat系の例を混在させず、実際のOSのパッケージ名・リポジトリを確認する。
- macOSの公式Homebrew例はmysql-clientだけを使う構成も案内する。DBサーバーの追加を必須とせず、.pcファイルのパスを確認する。Windowsは対応wheelの有無と、ソースビルド時のConnector/C・Visual Studioの条件を別に確認する。
- 変更は開発/検証環境で計画し、依存関係を記録する。不要な旧版固定、出所不明のwheel、TLS検証無効化を回避策にしない。
- 導入後は対象Pythonでのインポートと、権限を限定した接続試験を別々に確認する。接続成功だけでトランザクション/文字コード等のアプリ互換性まで保証しない。
CentOS Linux 7は2024年6月30日にEOLです。下の旧yum例を現行の推奨環境として復活させず、保守環境と移行先を分けて検討します。
PyMySQLへ変える場合の注意
PyMySQLは別のドライバです。pip installだけでMySQLdbを参照する既存コードやフレームワーク設定が書き換わるわけではありません。利用側が対応する接続指定と必要な認証依存を確認し、文字コード/TLS/トランザクション/例外処理を試験してください。本記事のビルド診断とは別の移行作業です。
一次資料: mysqlclient公式導入手順、検出方式の変更履歴、2.3.0のビルド検出処理、CentOS LinuxのEOL、PyMySQLの利用例。他のDBエラーは親のエラー一覧の子ページから選んでください。
| この記事の要点 |
|---|
|
エラー内容
下はmysqlclient 1.4.2.post1の旧ビルド記録です。現在のインストール手順や、全OSで同じ原因になる例ではありません。スタックは調査資料としてそのまま残します。
|
Collecting mysqlclient |
発生条件/原因/対処法
次の黒い表は当時のpipコマンドです。今の環境では対象の仮想環境を有効にし、そのPythonに対応するpython -m pipで導入先を確認します。sudoでシステムPythonへ一括導入する手順にはしません。
|
pip install mysqlclient |
次のyum installは旧環境の変更コマンドで、一律に実行しません。 mysql-community-develが適合するかは有効なリポジトリと導入済みのMySQL/MariaDB・OS版次第です。まず開発ライブラリとツールの所在を確認し、競合する別配布版やDBサーバーを追加しないでください。
|
yum install mysql-community-devel |
子ページはありません
- 1071 Specified key was too long; max key length is 767 bytes
- ERROR 1063 (42000): Incorrect column specifier for column '~'
- mysqld: Can't change dir to '...\MySQL\MySQL Server X.X\data\' (OS errno 2 - No such file or directory)
- Install/Remove of the Service Denied!
- Datetime 型が NULL に見える
- Warning: World-writable config file '/etc/mysql/my.cnf' is ignored
- ERROR 1698 (28000): Access denied for user 'root'@'localhost'
- Exception: Wrong MySQL configuration
- [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- Incorrect column specifier for column 'カラム名'
- BLOB/TEXT column 'description' used in key specification without a key length
- ERROR: /bin/sh: mysql_config: コマンドが見つかりません
- Host '...' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
- CSVエクスポート時に「ERROR 1045 (28000): Access denied for user 'username'@'localhost'」エラーが表示される
- Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT
- SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: ~
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09