20

I had a running django project and for some reasons I had to remove the current mysql version and install a different MySQL version in my machine.

But now when I am trying to run this program am getting an error as follows:

raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory

8 Answers 8

19

reinstall the c shared library:

pip uninstall mysql-python
pip install mysql-python
Sign up to request clarification or add additional context in comments.

1 Comment

This works for Ruby on Rails projects as well. Comment gem 'mysql2' in the Gemfile, run bundle install, uncomment the line and run bundle install again.
18

My issue with the same error message was mysql environment not all the way set up. I needed to uninstall MySQL-python; install libmysqlclient-dev; reinstall MySQL-python to rectify the issue.

So the fix was too:

  • sudo pip uninstall MySQL-python (uninstall from your package manager of choice)
  • sudo apt-get install libmysqlclient-dev

  • sudo pip install MySQL-python

**I should also mention that I used the --no-cache-dir option with pip install to hit PYPI directly which helped discover the following:

sh: 1: mysql_config: not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup.py", line 17, in <module>
    metadata, options = get_config()
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 25, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

and lead me to here

Using: mysql 5.7, mysql-python 1.2.5, django 1.8.9, ubuntu 16.04

1 Comment

Good observation on the --no-cache-dir option!
2

Use the following commands:

pip uninstall mysql-python
pip install mysql-python

In my case it work because it searches from the complied files.

1 Comment

Please give the user who asked more information and details for your answer
2

I did fix the same issue via setting below environment variable:

export LD_LIBRARY_PATH=/usr/local/mysql/lib

1 Comment

That worked for me !, thanks to elaborate more how to find the path i asked yum ( in using ami linux ) by using: yum whatprovides "libmysqlclient" from the output i couldl find the library folder that had libmysqlclient.so and added it to LB_LIBRARY_PATH on my bash_profile export LD_LIBRARY_PATH=/usr/lib64/mysql57
2

In my case the problem was caused by Ubuntu upgrades, so I can't find libmysqlclient.so.20 in /usr/lib/x86_64-linux-gnu.

Solution:

  1. Check existance libmysqlclient.so.XX in /usr/lib/x86_64-linux-gnu (or similar)
  2. Download libmysqlclient.so.XX from Ubuntu website (eg. link for v20)
  3. Install lib using dpkg command sudo dpkg -i libmysqlclient(...).deb and sudo apt-get install -f
  4. Link lib: ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.XX.so libmysqlclient.XX.so

1 Comment

Lukasz, I just posted a very similar but slightly simpler answer here: unix.stackexchange.com/a/623845/7155 ...in case you need to do it again.
2

I had the same problem and I fixed making what the mysqlclient official doc says to install before: sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

Comments

0

just in case pip uninstall & pip install not working, and you dont want to set specific path to ld_library_path, what I did on my vps:

cd /usr/local/lib
sudo ln -s /path/to/your/libmysqlclient.so.20

in my case my mysql is installed from linuxbrew (there is some reason to install inside home), so I had to navigate there $HOME/.linuxbrew/Cellar/mysql/5.7.18/lib/libmysqlclient.so.20

Comments

0

Just installing these packages works for me :

default-libmysqlclient-dev build-essential

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.