tech

勉強のために、各社の社説を収集してデータベース化する その3

タイトルの通り、続き物です。企画自体についてはこちらをご覧ください。

前回は、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のコードが正しくても接続できません。コマンドプロンプトで確認しましょう。
  • 接続ポートやパスワードなどのアカウント情報は正しいか
    これもあるあるですが、そもそも正しく接続しようとしないと、接続できません。
    今回はローカルへ接続してますが、開発などをしていると基本的に遠隔のサーバにアクセスに行ったり、セキュリティの関係でデフォルトのポート番号から変更していたりするので、確認しましょう。あとは、アカウントのユーザ名やパスワードがそもそも違う、などというケースもよくありますので、接続できない場合はチェックしましょう。

-tech
-, ,