Using python, you can connect and run queries against a MySQL database on your server.

In this example, we've created a test script named test_db.py and placed it in our cgi-bin folder. We also updated the file's permissions to 755.

We also used the following settings within the code:

  • database name: inmoti6_pytest
  • database user: inmoti6_pytest
  • database password: pytest
  • database host: localhost

We're connecting to the database and running SELECT VERSION(), which shows us which version of MySQL we are running.

#!/usr/bin/env python

import MySQLdb

# connect to the database
db = MySQLdb.connect("localhost","inmoti6_pytest","pytest","inmoti6_pytest" )

# setup a cursor object using cursor() method
cursor = db.cursor()

# run an sql question
cursor.execute("SELECT VERSION()")

# grab one result
data = cursor.fetchone()

# begin printing data to the screen
print "Content-Type: text/html"

print

print """\
<html>
<head>
<title>Python - Hello World</title>
</head>
<body>
"""

print "Database version : %s " % data

print"""\
</body>
</html>
"""

# close the mysql database connection
db.close()

When viewing this page in our browser, we see:

Database version : 5.0.92-community-log

Like this Article?
noble 2012-09-20 2:22 pm
Warning for other users on shared hosting (business) servers, as of 9/20/2012 this example appears to be broken due to MySQLdb library not being properly installed for the current version of python in /usr/lib/python2.4/site-packages on shared hosting servers.

Since you won't have SSH access as a business customer (you need to buy VPS or dedicated hosting for ssh access), you will not be able to install the setuptools-0.6c11 and MySQL-python-1.2.3 on your own. And the inMotion support folks said they are unwilling to add MySQLdb to the latest python version library directory on their shared servers.

I would encourage you to ask inMotion tech support to fix the python MySQLdb installation on your shared server. Maybe if enough customers ask for this they will eventually agree to do it.

The work-around that inMotion tech support suggested is to have my python CGI script call another external script (presumably written in PHP or Perl or some other scripting language that is able to access MySQL properly), and have the child script read/write data from/to my database on behalf of the python script. Very messy in my opinion.

I guess I will just stick with PHP or Perl for CGI for now whenever I need to access MySQL database since python is incapable of doing so on our server.
Scott Community Support technician 2012-09-20 3:45 pm
Hello noble,

I just responded to your original question with a resolution to your issue. Please check that to see if it will help you.

It seems that some select older servers do not have that module installed. As they are older servers and will likely soon be decommissioned, adding and updating them on the server wide level is not something the Systems team will do.

We can, however, move anyone who encounters this issue to newer servers that do have the capability. The newest servers also run an updated version of Python (2.6) and do have the MySQLdb module installed.

I do apologize for any misinformation you may have gotten with your support ticket. I will take measures to ensure a request of this nature is handled correctly in the future.

Best Regards,
Scott M
tmhudg 2012-10-29 6:15 pm
Is it possible to get something like bottle installed? I'm looking at bottle as my server engine and would really like to get it working here.

http://bottlepy.org/docs/dev/tutorial_app.html#server-setup

Thanks
Arn Community Support technician 2012-10-29 7:22 pm
Hello Tmhudg,

If were only going to be affecting your, it may be possible to run it. But it appears to be more of a server-wide thing, which, since you're on a shared server account-type, is not going to be allowed. If you want to inquire with live support, you can email support@inmotionhosting.com and you'll get a response through email.

If you have any further questions, please contact technical support or leave a comment at the bottom of the page.

Regards,

Arnel C.

Login to comment.

Your Opinion Matters

... but we need to know what you're thinking!

I'm Brad Markle, your friendly Community Support technician, and I wrote the article you're looking at now. I like to think it's perfect, but I'm sure you have some suggestions. Please, let me know what they are!

Feedback
Your Email Address
Because we'd like to talk with you!

Latest Questions

If you need some help, submit your question to our Community!
We guarantee a response within 60 minutes (8am - 9pm EST, Monday - Friday)
Ask a Question!
Recent Questions
  1. I can't access my website
  2. we-creation.com server down
  3. How do I delete the DNS entry?

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!