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.
You need to install Homebrew in you local machine. You can do it by:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
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
For connecting any other application to MySQL, you need to install a connector. You can do it like this:
brew install mysql-connector-c
You can do this by:
Please run the following command:
brew install openssl
Then add its path to environment using following line:
You need to unlink mysql and link mysql-connector-c:
brew unlink mysql brew link --overwrite mysql-connector-c
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
mysqlclient should work fine and will have no problem connecting your application from mysql to python.
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 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: Jan 14, 2021