PythonでMySQLに接続する方法【初心者向け】現役エンジニアが解説
初心者向けにPythonでMySQLに接続する方法について解説しています。MySQL環境のインストール方法と基本の操作を覚え、データベースの管理を行えるようにしましょう。MySQL のデータベース 「mysql」にある「user」テーブルの列を表示しています。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PythonでMySQLに接続する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
MySQLに接続する方法について詳しく説明していくね!
お願いします!
接続用のドライバーのインストール方法
Python からMySQL に接続するには、 mysqlclient という接続用のドライバーを使います。
mysqlclient は以下のコマンドでインストールします。
パソコンがMacの場合はターミナル、Windowsの場合はコマンドプロンプトから実行します。
なお、事前に Python のインストールが必要です。
pip install mysqlclient
インストールした際、「OSError: mysql_config not found」や「Command “python setup.py egg_info” failed with error code 1…」などと表示され、インストールに失敗する場合があります。
その場合は「mysql-connector-c」ライブラリのインストールが必要です。
パソコンがMacの場合はターミナルから以下のように入力します。
brew install mysql-connector-c
Windowsの場合は、公式サイトからインストーラをダウンロードして実行します。
https://dev.mysql.com/downloads/connector/c/
その他の環境の場合など、詳しくは公式サイトを参考にしてください。
https://github.com/PyMySQL/mysqlclient-python
PythonでMySQLに接続する書き方
MySQL環境がない場合は、事前にインストールしておきましょう。
MAMPをインストールすると、MySQLや管理ツール「phpMyAdmin」などを一緒にインストールできて便利です。
MySQLに接続する書き方は以下の通りです。
import MySQLdb # 接続する conn = MySQLdb.connect( user='root', passwd='root', host='localhost', db='mysql') # 接続を閉じる con.close
- user:MySQLに接続するユーザー名
- passwd:パスワード
- host:MySQLを実行しているパソコン名。別のパソコン(サーバ)を指定することも可能です。
- db:MySQLの中のデータベースを選択
ただ、接続するだけなので、実行しても何も表示されません。
なお、実行すると以下のエラーメッセージが発生する場合があります。
これはtmpフォルダに対する権限によるものです。
(2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
その場合は、connの部分に「unix_socket = ‘/Applications/MAMP/tmp/mysql/mysql.sock’,」を追記します。
conn = MySQLdb.connect( unix_socket = '/Applications/MAMP/tmp/mysql/mysql.sock', user='root', passwd='root', host='localhost', db='mysql')
実際に接続して操作してみよう
実際に Python から MySQL に接続する操作をしてみましょう。
今回のサンプルプログラムでは、 MySQL のデータベース 「mysql」にある「user」テーブルの列を表示しています。
ソースコード
import MySQLdb # 接続する conn = MySQLdb.connect( unix_socket = '/Applications/MAMP/tmp/mysql/mysql.sock', user='root', passwd='root', host='localhost', db='mysql') # カーソルを取得する cur = conn.cursor() # SQL(データベースを操作するコマンド)を実行する # userテーブルから、HostとUser列を取り出す sql = "select Host, User from user" cur.execute(sql) # 実行結果を取得する rows = cur.fetchall() # 1行ずつ表示する for row in rows: print(row) cur.close conn.close
実行結果は以下の通りです。
('127.0.0.1', 'root') ('::1', 'root') ('localhost', 'pma') ('localhost', 'root')
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!