PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法
2017/04/29
MySQL-pythonライブラリを簡単にインストールする方法
PythonでMySQLに接続するにはライブラリのインストールが必要
Pythonから MySQLに接続するためのライブラリは、標準ライブラリではないため、別途インストールする必要があります。
ですが、Pythonから MySQLに接続するライブラリは複数ありまして、どのライブラリを使うかによってデータベースへのアクセスの記述方法などが変わりますので、ライブラリの選択は重要です。
ですが、ここでは「MySQL-python」というライブラリをインストールする方法を解説します。
インストールする環境は、Windows10です。
また、複数ある Pythonの MySQLドライバについては、下記に比較記事がありますので、どれにするか迷っている場合は、参考にしてみるといいでしょう。
http://www.sakito.com/2012/10/python-mysql.html
MySQL-pythonライブラリのインストール
MySQL-python-1.2.3.win32-py2.7.exeのダウンロード
下記のサイトにアクセスし、必要なライブラリをダウンロードします。
http://www.codegood.com/archives/129
インストールするライブラリが、32bitか、64bitか、は確認が必要です。
注意文に説明がありますが、32bitか、64bitかは、インストールした Pythonのバージョンによって異なります。インストールしてある OS(Windows)が 32bitか、64bitかは関係ありません。
Windows10が 64bitであっても、32bitの Python2.7をインストールしている場合は、32bitのバージョンのライブラリをインストールします。
インストールしている Pythonのバージョンが分からない場合は、コマンドプロンプトから「python」と入力してみると確認することができます。
「python」と入力すると、下記の様な表示がされ、「[MSC v.1500 32 bit (Intel)]」のような記述があれば 32bitということになります。
1 2 3 4 |
C:\> python Python 2.7.13 (v2.7.13:a06454b1, Feb 05 2017, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> |
私が MySQL-pythonライブラリをインストールするにあたって情報を探していた時、「64bitのライブラリでは動かなかったため、32bit版を入れた」というような記事がいくつかありました。
そのため、「MySQL-pythonライブラリのインストールは難しい」との声も少なからずあるようですが、その方々は使っている OSが 64bitなので 64bit版を入れたけども動かなかったので...ということなのではなかろうかと思います。
MySQL-pythonライブラリで必要なのは、Pythonが 32bitなのか 64bitなのか、それによって入れるものが違うということを知らなかったからなのだろう、と感じました。
MySQL-python-1.2.3.win32-py2.7.exeのインストール
ダウンロードされた「MySQL-python-1.2.3.win32-py2.7.exe」をインストールします。
インストールは簡単です。
上記の画面が出てきたら、デフォルトの設定のままで問題ありませんので、「次へ」「次へ」「次へ」とクリックしてインストールを行います。
完了画面がでたらインストール終了です。
MySQL-pythonライブラリを使った MySQLへの接続スクリプト
MySQL-pythonライブラリを使った MySQLへの接続スクリプトのサンプル
Pythonで MySQL-pythonライブラリを使って MySQLに接続するためのサンプルスクリプトを乗せておきます。
このスクリプトを利用すれば MySQLへのアクセス確認ができるでしょう。
もちろん、MySQLの接続情報や select文は書き換えてくださいね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# -*- coding: utf-8 -*- import MySQLdb connect = MySQLdb.connect(host="localhost", port=3306, db="cake3", user="root", passwd="passwd", charset="utf8") cursor = connect.cursor() sql = "select name from name_list" cursor.execute(sql) for row in cursor: exclusion_list_file = row[0] cursor.close() connect.close() print exclusion_list_file |
MySQL-pythonライブラリを使った MySQLへの接続のエラーの種類1
上記のサンプルスクリプトを「test.py」として、コマンドプロンプトから実行した場合、下記のようなエラーが出る場合があります。
これは、MySQL-pythonライブラリがインストールされていません、というエラーですので、MySQL-pythonライブラリがまだインストールされていないか、正しくインストールされていないことになります。
1 2 |
File "c:\xampp\htdocs\test\test.py", line 3, in <module> import MySQLdb |
MySQL-pythonライブラリを使った MySQLへの接続のエラーの種類2
正常にインストールが終わっている場合は、前項のエラーは出てこなくなるはずです。
私の場合は、前項のエラーに替わって下記のエラーが出たのですが、これは、単純に ID、PASSが間違っていてログインできません、というエラーです。
慌てずに、改めて、HOSTや ID、PASSなどの情報が間違っていないか確認しましょう。
1 2 3 4 |
C:\> python test6.py Traceback (most recent call last): File "c:\xampp\htdocs\testtest.py", line 5, in <module> connect = MySQLdb.connect(host="localhost", port=3306, db="cake3", user="root", passwd="passwd", charset="utf8") |
selenium+Pythonで処理の自動化に関する記事
Selenium WebDriver、Pythonをインストールしブラウザ自動操作の環境構築手順のまとめ
PythonでUTF-8など日本語(全角文字)を使う方法。コメントにも必要。
Pythonをコマンドラインで実行。全角文字(日本語)を引数にする場合の対処方法
Selenium WebDriverでFirefoxをプライベートウィンドウ/Chromeをシークレットモードで起動する方法・言語はpython
Selenium WebDriver、Pythonをインストールし Chromeの自動操作の環境構築手順のまとめ
Beautiful Soupを利用してPythonでスクレイピングを行う環境構築方法の解説
PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法
PythonでURLの有無、存在をチェックするスクリプト
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Gitで「fatal: Authentication failed for ‘https://example.com/git_repositories/example.git/’」のエラーが出た場合の対処方法の一つ
Gitのリモートリポジトリにアクセスする際、Authentication failedのエラーが。しかし、ID、PASSが間違っているのではなく、リモートリポジトリのURLが間違っている場合もあるので再度確認を。
-
直リンク禁止の.htaccessを超分かりやすく解説。日本語じゃなくてPHPで説明
直リンクを禁止する.htaccessの記述内容を日本語ではなくPHPで解説!私自身もこの方法ですっかり理解できました。.htaccessって簡単!って思えますよ。
-
Selenium WebDriver、Pythonをインストールしブラウザ自動操作の環境構築手順のまとめ
ブラウザを自動操作しテストを実行するロボットをselenium WebDriver+Pythonの環境を構築し、動作確認までの手順のまとめ。初心者向けに詳細解説。サンプルソースも。
-
ロリポップからX-Serverに引越し。サーバの月額費用が増えても求めた理由は?
ロリポップからX-Serverに引越すその理由とは?SEOの観点からも少しでもサーバレスポンスが早いサーバが求められロリポップでは限界を感じたからです。
-
借りてはいけないレンタルサーバ実例4社・アルファメール・WEBアリーナ
餅は餅屋。サーバはサーバ屋が提供するサービスを利用するべきという記事で、具体例 4サービスを例にこんなサーバはNGと紹介しています。
-
Webサイト公開時に重複コンテンツを排除する.htaccessのリダイレクトの設定のまとめ
サイトを公開する際にはURLの正規化は必須です。正規化とは何かを解説し、.htaccessに設定すべきリダイレクトの設定を具体的に説明します。
-
サイト更新、引越時に.htaccessでリダイレクトする方法解説
サイト更新,引越しなどでサイトのURLが変わった場合のリダイレクトを.htaccessのRewriteEngineを使って処理する方法の解説です。
-
Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説
開発進行中の環境、公開中の環境にGitを導入する。その基本的な手続きを解説。Gitの導入、ローカルリポジトリを作成。リモートリポジトリを利用し、本番環境にデプロイする手続きを解説。
-
さくらサーバのmb_send_mailでメール送信時にmalformed header from script ‘xxx.php’: Bad header: xxxのエラーが
さくらインターネットのレンタルサーバからPHPのmb_send_mail()関数を利用してメールを送信するとInternal Server Errorが発生。その原因は、メールアドレスが登録されていないこと。
-
コピーコンテンツ対策.htaccessで直リンク禁止しリダイレクトで対応
不正なコピーコンテンツからの直リンクを拒否する.htaccessの設定方法。拒否するサイトを指定、許可するサイトを指定する方法、単純な拒否と画像の差し替えを解説。
Comment
お世話になります
私が利用しているOSはWin10 64Bitです。
Anaconda2 64bitを使っていて何度もMySQLをインストールしようとしてもエラーの連続でインストールできませんでした。
いろいろ調べていると32Bitでないといろいろ手間がかかるということがわかり
Python2.7.12 32BitをインストールしてやっとMySQLdbをimport出来ました。
しかし下記のエラーが出ます
対処方法をご指導ください
C:\Users\mtg-1>python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
Import MySQLdb
Connection = Mysql.connect(
host=”localhost”,
port=3306,
db=”test”,
user=”username”,
passwd=”password”,
)
cursor = connection.cursor()
cursor.execute(‘’’CREAT TABLE products (name text, price integer);’’’)
cursor.execute(‘’’INSERT INTO products (name, price)VALUES (‘apple’, 198);’’’)
cursor.execute(‘’’INSERT INTO products (name, price)VALUES (‘orange’, 100);’’’)
connection.commit()
cursor.execute(‘’’SELECT * FROM products:’’’)
products = cursor.fetchall()
print(products) # -> ((‘apple’, 198L), (‘orange’, 100L))
——————————————————————————–
import MySQLdb
connection = MySQLdb.connect(
… host=”localhost”,
… port=3306,
… db=”test”,
… user=”username”,
… passwd=”password”,
…
… )
Traceback (most recent call last):
File “”, line 6, in
File “C:\python27\lib\site-packages\MySQLdb\init.py”, line 81, in Connect
return Connection(*args, kwargs) →どのような意味になりますか?
File “C:\python27\lib\site-packages\MySQLdb\connections.py”, line 187, in init
super(Connection, self).init(*args, kwargs2) →どのような意味になりますか?
_mysql_exceptions.OperationalError: (2003, “Can’t connect to MySQL server on ‘localhost’ (10061)”)
→どのような意味になりますか?
上記のスクリプトを実行するには事前に何かの設定が必要になると思いますが
インストールしてimportしてコードをたたくとエラーになります
お教えいただけませんか?
よろしくお願いいたします。
kasaburankaさん、コメントありがとうございます。
ご質問いただいている件ですが、私は Anaconda2を使ったことがありませんので、エラーの内容を確認することができません。
大変申し訳ありません。
ありがとうございます。基本的なことがわかっていなかったのでMySQLをインストールしてやり直します。
kasaburankaさん、お力になれなくて残念です...
ところで、マルチポストという言葉をご存知ですか?