I am using Python version 2.5.4 and install MySQL version 5.0 and Django. Django is working fine with Python, but not MySQL. I am using it in Windows Vista.
This question is related to
python
django
python-2.x
None of the above worked for me on an Ubuntu 18.04 fresh install via docker image.
The following solved it for me:
apt-get install holland python3-mysqldb
Ubuntu:
sudo apt-get install python-mysqldb
pip install --user mysqlclient
above works for me like charm for me.I go the error from sqlalchemy actually. Environment information :
Thanks to derevo but I think there's another good way for doing this:
pypm install mysql-python
I think pypm
is more powerful and reliable than easy_install
.
for window :
pip install mysqlclient pymysql
then:
import pymysql pymysql.install_as_MySQLdb()
for python 3 Ubuntu
sudo apt-get install -y python3-mysqldb
Try this.
pip install MySQL-python
For anyone coming to this page when trying to find a solution for sqlalchemy
, all you need to do is:
pip install PyMySQL
And adjust your connection string to use PyMySQL, from mysql://
to mysql+pymysql://
.
On my mac running Catalina v10.15.2, I had the following MySQLdb version conflict:
ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)
To resolve it, I did the following:
pip uninstall MySQL-python
pip install MySQL-python
Win10 / Python27 this worked for me:
easy_install mysql-python
all other 'pip install...' failed with dependency errors
For Python 3.6+ sudo apt-get install libmysqlclient-dev
and pip3 install mysqlclient
does the trick
For Python 3+ version
install mysql-connector
as:
pip3 install mysql-connector
Sample Python DB connection code:
import mysql.connector
db_connection = mysql.connector.connect(
host="localhost",
user="root",
passwd=""
)
print(db_connection)
Output:
> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>
This means, database is correctly connected.
mysqldb
is a module for Python that doesn't come pre-installed or with Django. You can download mysqldb
here.
In CMD
pip install wheel
pip install pymysql
in settings.py
import pymysql
pymysql.install_as_MySQLdb()
It worked with me
On Debian Buster, the following solution worked for me with python 3.7:
sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient
I have tried methods above, but still no module named 'MySQLdb', finally, I succeed with
easy_install mysql-python
my env is unbuntu 14.04
If you are running on Vista, you may want to check out the Bitnami Django stack. It is an all-in-one stack of Apache, Python, MySQL, etc. packaged with Bitrock crossplatform installers to make it really easy to get started. It runs on Windows, Mac and Linux. Oh, and is completely free :)
None of the above worked for me on an Ubuntu 18.04 fresh install via docker image.
The following solved it for me:
apt-get install holland python3-mysqldb
Win10 / Python27 this worked for me:
easy_install mysql-python
all other 'pip install...' failed with dependency errors
On OSX these commands worked for me
brew install mysql-connector-c
pip install MySQL-python
If you are running on Vista, you may want to check out the Bitnami Django stack. It is an all-in-one stack of Apache, Python, MySQL, etc. packaged with Bitrock crossplatform installers to make it really easy to get started. It runs on Windows, Mac and Linux. Oh, and is completely free :)
On Debian Buster, the following solution worked for me with python 3.7:
sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient
On my mac running Catalina v10.15.2, I had the following MySQLdb version conflict:
ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)
To resolve it, I did the following:
pip uninstall MySQL-python
pip install MySQL-python
for window :
pip install mysqlclient pymysql
then:
import pymysql pymysql.install_as_MySQLdb()
for python 3 Ubuntu
sudo apt-get install -y python3-mysqldb
pip install PyMySQL
and then add this two lines to your Project/Project/init.py
import pymysql
pymysql.install_as_MySQLdb()
Works on WIN and python 3.3+
...and remember there is no MySQLdb for python3.x
(I know the question is about python2.x but google rates this post quite high)
EDIT: As stated in the comments, there's a MySQLdb's fork that adds Python 3 support: github.com/PyMySQL/mysqlclient-python
I met the same situation under windows, and searched for the solution.
Seeing this post Install mysql-python (Windows).
It points out installing such a pip environment is difficult, needs many other dependencies.
But I finally know that if we use mysqlclient
with a version down to 1.3.4
, it don't need that requirements any more, so try:
pip install mysqlclient==1.3.4
pip install PyMySQL
and then add this two lines to your Project/Project/init.py
import pymysql
pymysql.install_as_MySQLdb()
Works on WIN and python 3.3+
Thanks to derevo but I think there's another good way for doing this:
pypm install mysql-python
I think pypm
is more powerful and reliable than easy_install
.
If pip install mysqlclient produces an error and you use Ubuntu, try:
sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient
For anyone coming to this page when trying to find a solution for sqlalchemy
, all you need to do is:
pip install PyMySQL
And adjust your connection string to use PyMySQL, from mysql://
to mysql+pymysql://
.
In CMD
pip install wheel
pip install pymysql
in settings.py
import pymysql
pymysql.install_as_MySQLdb()
It worked with me
If your are using SQLAlchemy and the error is in /site-packages/sqlalchemy/dialects/mysql/mysqldb.py
:
from ...connectors.mysqldb import (
MySQLDBExecutionContext,
MySQLDBCompiler,
MySQLDBIdentifierPreparer,
MySQLDBConnector
)
so you may have missed mysqldb connector for SQLAlchemy
and the solution is to re-install sqlalchemy after installing mysql-python
module.
You need to use one of the following commands. Which one depends on what OS and software you have and use.
For Windows, see this answer: Install mysql-python (Windows)
I personally recommend using pymysql
instead of using the genuine MySQL connector, which provides you with a platform independent interface and could be installed through pip
.
And you could edit the SQLAlchemy URL schema like this:
mysql+pymysql://username:passwd@host/database
...and remember there is no MySQLdb for python3.x
(I know the question is about python2.x but google rates this post quite high)
EDIT: As stated in the comments, there's a MySQLdb's fork that adds Python 3 support: github.com/PyMySQL/mysqlclient-python
mysqldb
is a module for Python that doesn't come pre-installed or with Django. You can download mysqldb
here.
If your are using SQLAlchemy and the error is in /site-packages/sqlalchemy/dialects/mysql/mysqldb.py
:
from ...connectors.mysqldb import (
MySQLDBExecutionContext,
MySQLDBCompiler,
MySQLDBIdentifierPreparer,
MySQLDBConnector
)
so you may have missed mysqldb connector for SQLAlchemy
and the solution is to re-install sqlalchemy after installing mysql-python
module.
I met the same situation under windows, and searched for the solution.
Seeing this post Install mysql-python (Windows).
It points out installing such a pip environment is difficult, needs many other dependencies.
But I finally know that if we use mysqlclient
with a version down to 1.3.4
, it don't need that requirements any more, so try:
pip install mysqlclient==1.3.4
mysqldb
is a module for Python that doesn't come pre-installed or with Django. You can download mysqldb
here.
For Python 3.6+ sudo apt-get install libmysqlclient-dev
and pip3 install mysqlclient
does the trick
I am at ubuntu (linux) and what worked for me was
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
and then finally
pip install mysqlclient
mysqldb
is a module for Python that doesn't come pre-installed or with Django. You can download mysqldb
here.
cd
.easy_install MySQL-python
If pip install mysqlclient produces an error and you use Ubuntu, try:
sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient
You need to use one of the following commands. Which one depends on what OS and software you have and use.
For Windows, see this answer: Install mysql-python (Windows)
Ubuntu:
sudo apt-get install python-mysqldb
I am at ubuntu (linux) and what worked for me was
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
and then finally
pip install mysqlclient
I personally recommend using pymysql
instead of using the genuine MySQL connector, which provides you with a platform independent interface and could be installed through pip
.
And you could edit the SQLAlchemy URL schema like this:
mysql+pymysql://username:passwd@host/database
If you are running on Vista, you may want to check out the Bitnami Django stack. It is an all-in-one stack of Apache, Python, MySQL, etc. packaged with Bitrock crossplatform installers to make it really easy to get started. It runs on Windows, Mac and Linux. Oh, and is completely free :)
if your python version is 3.5
, do a pip install mysqlclient
, other things didn't work for me
I have tried methods above, but still no module named 'MySQLdb', finally, I succeed with
easy_install mysql-python
my env is unbuntu 14.04
if your python version is 3.5
, do a pip install mysqlclient
, other things didn't work for me
On OSX these commands worked for me
brew install mysql-connector-c
pip install MySQL-python
Try this.
pip install MySQL-python
For Python 3+ version
install mysql-connector
as:
pip3 install mysql-connector
Sample Python DB connection code:
import mysql.connector
db_connection = mysql.connector.connect(
host="localhost",
user="root",
passwd=""
)
print(db_connection)
Output:
> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>
This means, database is correctly connected.
cd
.easy_install MySQL-python
Source: Stackoverflow.com