Understanding the "mysql_config not found" Error
When installing Python packages that interact with MySQL databases (like mysql-python
or MySQL-connector-python
), you might encounter the error "mysql_config not found." This error doesn’t stem from a problem with Python itself, but rather from the installation process needing access to the MySQL client libraries to correctly configure the connector. mysql_config
is a script that comes with the MySQL client tools and provides information about the installed MySQL libraries – specifically, their location and linking flags. The Python installation process uses this information to build the connector properly.
This tutorial will guide you through the common causes of this error and provide solutions for various operating systems.
Why Does This Happen?
The error typically occurs in one of two scenarios:
- MySQL Client Tools Not Installed: You haven’t installed the MySQL client libraries on your system. These libraries are separate from the MySQL server itself.
mysql_config
Not in Your System’s PATH: The MySQL client tools are installed, but the directory containing themysql_config
script isn’t included in your system’sPATH
environment variable. This means your system doesn’t know where to find the script when the Python installation process needs it.
Solutions by Operating System
Here’s how to resolve the error on different operating systems:
1. Debian/Ubuntu
The most common solution on Debian and Ubuntu-based systems is to install the libmysqlclient-dev
package. This package provides the necessary client libraries and the mysql_config
script.
sudo apt update
sudo apt install libmysqlclient-dev
For recent versions of Debian/Ubuntu (as of 2018 and later), you might need:
sudo apt install default-libmysqlclient-dev
After installing this package, try reinstalling your Python MySQL connector.
2. CentOS/RHEL/Fedora
On CentOS, Red Hat Enterprise Linux, and Fedora, you’ll need to install the mysql-devel
package.
sudo yum install mysql-devel
Or, if you’re using dnf
(Fedora 22+):
sudo dnf install mysql-devel
Following the installation, attempt to reinstall your Python MySQL connector.
3. macOS
There are a few approaches on macOS:
-
Using Homebrew: If you’re using Homebrew (a popular package manager for macOS), the easiest way is to install MySQL using Homebrew:
brew install mysql
After installation, you may need to add the MySQL binary directory to your
PATH
. This can be done temporarily with:export PATH=$PATH:/usr/local/mysql/bin
For a permanent solution, add the above line to your shell’s configuration file (e.g.,
~/.bashrc
,~/.zshrc
). -
Manual Installation: If you’ve manually installed MySQL on macOS, ensure that the directory containing
mysql_config
is in yourPATH
. The location may vary depending on how you installed MySQL, but it’s often/usr/local/mysql/bin
.
4. General Approach: Check Your PATH
Regardless of your operating system, you can manually verify that mysql_config
is accessible:
-
Locate
mysql_config
: Use thefind
command to locate themysql_config
script on your system:find / -name mysql_config
-
Add to PATH: Once you’ve found the directory containing
mysql_config
, add it to yourPATH
environment variable. The exact method for doing this depends on your shell (Bash, Zsh, etc.). For example, in Bash, you can use:export PATH=$PATH:/path/to/mysql_config/directory
Replace
/path/to/mysql_config/directory
with the actual path you found in the previous step. Remember to add this line to your shell’s configuration file for a permanent solution.
Reinstalling the Python Connector
After applying one of the solutions above, try reinstalling your Python MySQL connector using pip
:
pip install mysql-python # Or pip install mysql-connector-python
If you’re using a virtual environment, make sure the virtual environment is activated before installing.
Troubleshooting
If you’re still encountering issues:
- Double-check the path: Ensure the path you added to your
PATH
is correct. - Restart your terminal: After modifying your
PATH
, close and reopen your terminal to ensure the changes take effect. - Virtual Environment: If you are working in a virtual environment, make sure the environment is active before running
pip
. - Permissions: Occasionally, permission issues can prevent
pip
from accessing the necessary files. Try runningpip
withsudo
(though this is generally not recommended unless absolutely necessary).