0

Python comes in two versions: Python 2.7.6 which has now been superseded by Python 3.4.0. The critical line in Python to access MySQL is "import MySQLdb"

Thanks to a response from StackOverFlow, I realized that I was unintentionally accessing MySQL through Python version 2.7.6. Apparently, "MySQLdb" is not compatible with Python version 3.4.0.

Searching the internet has disclosed alternatives for connecting Python to MySql, however, many of the suggestions do not disclose whether the offered solutions would actually work with Python version 3.4.0.

This StackOverFlow Post listed some possible solutions. Python 3.4.0 with MySQL database. I installed mysqlclient 1.3.6, I also ran "sudo pip install PyMySQL" with out error.

However, upon entering python with "python3"; I still received the error message "ImportError: No module named 'MySQLdb'" after typing in: "import MySQLdb". So something was still wrong.

As an FYI MySQL evidently has its own connector, but I don't know whether it works or does not work with Python 3.4. Connecting to MySQL Using Connector/Python I will have to look into this more.

Any advice on how to connect Python 3.4 with MySQL?

Steve R.
  • 418

2 Answers2

0

Best way to connect to MySQL from python is to Use MySQL Connector/Python because it is official Oracle driver for MySQL for working with Python and it works with both Python 3 and Python 2.

install connector using pip

pip install mysql-connector-python

if pip fails you can download the installer from https://dev.mysql.com/downloads/connector/python/

unpack the downloaded DEB file and install it. Refer to this article to download MySQL connector Python and Connect to MySQL

Vishal
  • 196
0

The documentation for MySQL Connector/Python says Version 2.0 should work with MySQL Server 5.5-5.7 and Python 3.3 and later. So I would say it's a good bet. If it doesn't work, follow up with what error you encounter and I'll see if I can help.

Synergist
  • 315
  • Let me know if it works please. – Synergist Jun 01 '15 at 17:43
  • Sort of. When I type in just plain python then " import mysql.connector" it works. When I type in python3 then " import mysql.connector" it fails with the message "ImportError: No module named 'mysql'". Implies a configuration issue (such as path) with Python 3.4.0? – Steve R. Jun 01 '15 at 18:04
  • How did you install MySQL Connector? – Synergist Jun 01 '15 at 18:09
  • Turns out that the new version is available through the Ubuntu Software Center. However, I had to remove the old "python-mysql.connector" (version 1.1.6-1) before I could install the new version of the python connector. I only ran the install from the Ubuntu Software Center. Did not underake any other configuration. – Steve R. Jun 01 '15 at 18:20
  • Hmm try uninstalling from Ubuntu Software Center. Then install pip3. Then try sudo pip install mysql-connector-python – Synergist Jun 01 '15 at 18:26
  • Good news, works! But not fully tested. I removed "mysql-connector-python" as suggested, but using Synaptic Package Manager. I noticed the following package and installed it" python3-mysql.connector 1.1.6-1. It works, but may require some further exploration. I noticed that I may have misinterpreted one error message related to the connection string. I fixed the connection string, but I may need to check some earlier renditions to verify if they actually failed. I have not yet tried PIP3. – Steve R. Jun 01 '15 at 19:13
  • Glad you got it to work! – Synergist Jun 01 '15 at 19:37