タイトルの通り、続き物です。企画自体についてはこちらをご覧ください。
前回は、WindowsにMySQL環境を作成して終わりました。今回は実際にPythonからデータベースを操作できるかを試します。
社説収集のほうを先にやるか迷ったのですが、収集できてもデータベースの接続でこけると面倒だったので、先にお試しできちんと接続できるかの確認を行います。
事前準備:とりあえずテスト用DBを作っておく
Pythonのコードを書く前に、MySQL上で、テスト用DBを作っておきます。これは、今回の目標である社説を収集したデータをためるDBではなく、完全にお試し用のDBになります。MySQLはこういったDBという単位を複数独立して作成できるので、何か試したいときはまずお試し用のDBを作成しておくことをお勧めします。
作り方は簡単です。まずMySQLにログインします。そして次のコードを打ちます。
CREATE DATABASE hoge_db;
hoge_dbの部分は、好きな文字でOKです。これでテスト用のDBができました。
PythonからMySQLへの接続を試す
先人の知恵をお借りして、PythonからMySQLに接続するプログラムを作成します。なお、管理人はPythonプログラムの開発環境としてPyCharmを利用しています。今回はこちらの記事(https://www.sejuku.net/blog/82657)を参考にさせていただきました。
import MySQLdb
if __name__ == '__main__':
# データベースへの接続とカーソルの生成
connection = MySQLdb.connect(
host='localhost',
user='root',
passwd='ルートのパスワード',
db='hoge_db')
cursor = connection.cursor()
# ここに実行したいコードを入力します
# 保存を実行
connection.commit()
# 接続を閉じる
connection.close()
基盤となるコードは参考記事にも記載されている通り上記のようなものです。まずデータベースの接続部分があり、ここにMySQLのアカウント情報を記載します。そのあと、”cursor”を利用して、SQL文を実行していくイメージです。
同様に実行すると参考記事のようにデータが取得できるだけでなく、コマンドプロンプトのMySQLからもデータベースの中身を参照できます。
mysql> select * from name_age_list;
+----+--------+-----+
| id | name | age |
+----+--------+-----+
| 1 | taro | 25 |
| 2 | jiro | 23 |
| 3 | saburo | 21 |
+----+--------+-----+
3 rows in set (0.00 sec)
チェックポイント
- MySQLは起動済みか
そもそもMySQLが起動していないと、Pythonのコードが正しくても接続できません。コマンドプロンプトで確認しましょう。 - 接続ポートやパスワードなどのアカウント情報は正しいか
これもあるあるですが、そもそも正しく接続しようとしないと、接続できません。
今回はローカルへ接続してますが、開発などをしていると基本的に遠隔のサーバにアクセスに行ったり、セキュリティの関係でデフォルトのポート番号から変更していたりするので、確認しましょう。あとは、アカウントのユーザ名やパスワードがそもそも違う、などというケースもよくありますので、接続できない場合はチェックしましょう。