Hacks by Ruddra

Install MySQL and MySQLClient(Python) in MacOS

Install MySQL and MySQLClient(Python) in MacOS

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

Steps

Step one: install ‘brew’

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)"

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:

mysql_secure_installation

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

brew services start mysql

Else

mysql.server start

Step ghree: 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:

Change

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

To

# Create options
libs="-L$pkglibdir"
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 opposit 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.

In conclusion

In this article, we have seen installing MySQL from brew. 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 brew.


Topics: Python , MySQL , MacOS

Share Your Thoughts
M ↓   Markdown

rsunbabu
Friday, Aug 2, 2019

The above steps worked when I uninstalled the MySQL dowloaded from https://dev.mysql.com/downloads/file/?id=487977 here

Rebecca Luong
Friday, Aug 2, 2019

thank you!!

iapilgrim
Friday, Aug 2, 2019

Thanks - it works for me

Mark
Thursday, Nov 14, 2019

Thank you so much!

Kathy Mather
Sunday, Nov 17, 2019

This worked splendidly. Thanks so much for taking the time to write it out!

Shamal Sandeep
Thursday, Nov 21, 2019

Thanks for posting a comprehensive installation guide that actually works.

Michael Barton
Wednesday, Nov 27, 2019

You’re my hero. Thank you.

liiy
Friday, Nov 29, 2019

I can install mysqlclient success according your step But when I excute “pip install mysql-python " it show _mysql.c:44:10: fatal error: ‘my_config.h’ file not found #include “my_config.h” how can i fix it ? Thank you

ruddra
Friday, Nov 29, 2019

Probably you need to downgrade your MySQL to make it work. More information can be found in this SO link: https://stackoverflow.com/a/52262477/2696165

Cem
Sunday, Dec 1, 2019

It worked for me after adding –force in the step 6 (brew link –overwrite mysql-connector-c)

Willy
Sunday, Dec 22, 2019

Thanks worked !