Install MySQL and MySQLClient(Python) in MacOS

Install MySQL and MySQLClient(Python) in MacOS

Connecting to MySQL from Python in MacOS is a very problematic and painful process. In this post, we are going to see how to install MySQL and connect a Python application to it using mysqlclient.

Step one: install Homebrew

You need to install Homebrew in you local machine. You can do it by:

/usr/bin/ruby -e "$(curl -fsSL"

Step two: install MySQL

Using Homebrew you can install mysql simply by:

brew install mysql

Then setup the credentials in MySQL server using the following command:


Finally if you want to start at login and as a background service, run this:

brew services start mysql


mysql.server start

Step three: install MySQL-Connector-C

For connecting any other application to MySQL, you need to install a connector. You can do it like this:

brew install mysql-connector-c

Then according to mysqlclient’s documentation, you need to put a bugfix at mysql_config. For that first type mysql_config in terminal.:

>> mysql_config
Usage: /usr/local/bin/mysql_config [OPTIONS]
Compiler: ...

It will show where you need to find mysql_config. Then you can use any of the editor of your liking and change the following lines inside the mysql_config:


# on macOS, on or about line 112:
# Create options
libs="$libs -l "


# Create options
libs="$libs -lmysqlclient -lssl -lcrypto"

Step four: install XCode-Select

You can do this by:

xcode-select --install

Step five: install OpenSSL

Please run the following command:

brew install openssl

Then add its path to environment using following line:

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/

You need to unlink mysql and link mysql-connector-c:

brew unlink mysql
brew link --overwrite mysql-connector-c

Step seven: install mysqlclient

You should be able to use pip install mysqlclient without any errors.

Now, you need to do the opposite of Step six:

brew unlink mysql-connector-c
brew link --overwrite mysql

Hopefully now mysqlclient should work fine and will have no problem connecting your application from mysql to python.

Step nine: add mysqlclient in virtual env(optional)

if you have mysqlclient installed in the system, then you can use --system-site-packages when creating virtual environment:

python3 -m venv venv_name --system-site-packages


virtualenv venv_name --system-site-packages

But, if you do not want to include all the system packages, and you still face error installing mysqlclient in virtual environment, then try following steps:

source venv/bin/activate
brew unlink mysql
brew link --overwrite mysql-connector-c
pip install mysqlclient
brew unlink mysql-connector-c
brew link --overwrite mysql

In conclusion

In this article, we have seen installing MySQL from Homebrew. I never used MySQL installed from Oracle website, so don’t know how to fix it. Better if you uninstall that and install MySQL from scratch using Homebrew.

Last updated: July 2, 2020

Share Your Thoughts
M↓ Markdown