先日は、DMMデータをAPIで取得してツイートするプログラムを作りました。
が、全く同じ商品のリンクを複数回ツイートするとツイートエラーになります。
だから、どの商品をツイートしたのか、ツイート履歴を残して、ツイート前にチェックを入れようと思いました。
で、どうせならデータベース構築して、そこで色々管理しようと思いMySQLのインストールをしてみました。今回はそのインストール手順を残しています。動作確認で簡単なpythonプログラムも作成しています。

PCへMySQLをインストール
まずは、MySQLのインストールです。私は、Mac OSへのインストールですが、他のOSでも手順は同じです。
MySQLインストーラのページへアクセス
MySQLのサイトにアクセスして、DEVELOPER ZONEタブをクリックします。

DEVELOPER ZONEの右側の「MySQL 8.0」をクリック。私がインストールしたときは、バージョンは8.0でしたが、最新のアプリはバージョンアップしている可能性もあります。

ダウンロードするインストーラの選択
続いての画面でOSを選択してDownloadボタンをクリックします。今回は、MacOSを選択していますが、皆さんのインストール環境に合わせてください。

ダウンロードのページでは、ログインするかユーザ登録をするかの選択ボタンが表示されています。すでにアカウントを持っている方ならLoginしてください。そうでない方は、アカウントの作成は不要で、ボタン左下の次のメッセージをクリックすればユーザ登録など不要でダウンロードできます。
「No thanks, just start my download.」

MySQLインストール
インストーラがダウンロードディレクトリに生成されます。クリックするとインストーラが立ち上がりインストールが始まります。

ソフトウェアチェックのメッセージが出ますが、許可ボタンクリックしないとインストールできないので、「許可」一択になります。

そのまま、いくつかの確認事項などに印鑑を押してか








インストーラはゴミ箱へ…
インストール状況確認

MySQLの動作確認
インストールが完了したので動作確認をします。動作確認は、次の2つで実施します。
- ターミナルからの接続確認
- pythonからの接続確認
ターミナルからの動作確認
まずは、pythonを使わずに接続の確認をします。ついでに、pythonからアクセスするデータベースも作ってしまいます。Mac OSを使っているのでターミナルから接続の確認をします。
ターミナル起動
説明不要と思いますが、ターミナルを起動します。

MySQL起動して接続確認
次のコマンドでMySQLをrootユーザで起動します。パスワードの入力を求められるので、インストール時に設定したパスワードを使います。入力しているところは青太字で記載しています。
% /usr/local/mysql/bin/mysql -u root -p
Enter password:
接続に成功すると、メッセージが表示されて、プロンプトが「mysql>」となれば接続成功です。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 227
Server version: 8.0.32 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
python使って動作確認
ここからは、pythonを使ってMySQLに接続して簡単なSQLを発行して動作確認をしてみます。引き続きターミナルでの作業が続きます。
動作確認用データベース作成
まず、pythonで使うデータベースを作成します。その前にMySQLインストール直後にデフォルトで生成されているデータベースを確認しています。
mysql> SHOW DATABASES;
+--------------------------------+
| Database |
+--------------------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------------------+
4 rows in set (0.02 sec)
新たに一つ「mydb」というデータベースを作成して、そこにpythonからアクセスするようにします。
mysql> create database mydb;
Query OK, 1 row affected (0.02 sec)
mysql> SHOW DATABASES;
+--------------------------------+
| Database |
+--------------------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| sys |
+--------------------------------+
5 rows in set (0.02 sec)
簡単に作成できました!!
作ったデータベースにテーブルを作成
次は作成したデータベースにテーブルを作成します。データベースを作ったばかりなので、テーブルなんてあるわけないと思いますが…とりあえず、今の状況を確認してます。
mysql> show tables;
Empty set (0.00 sec)
テスト用のテーブル「sitelist」作ります。サイト名とURLを登録するテーブルです。特に今後の作業で使うわけではないので、なんでも良いです。sqlの解説は気が向いたら別途行います。
mysql> create table sitelist(site_name varchar(10), url varchar(64));
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
mysql> show tables;
+-----------------------+
| Tables_in_mydb |
+-----------------------+
| sitelist |
+----------------------+
1 row in set (0.00 sec)
作成できました。
sqlをさっさと習得して副業で収入を得たいなら、スクールをお勧めします。
例えば、「テックアイエス」。
テックアイエスはSQLだけではなく、稼ぐために必要なスキルをセットで学べるので、すぐに収入につながります。
レコード追加
作ったテーブルにDMMのサイト情報を登録します。
mysql> insert into sitelist value("DMM","https://www.dmm.com/");
Query OK, 1 row affected (0.00 sec)
mysql> select * from sitelist;
+---------------+--------------------------------+
| site_name | url |
+---------------+--------------------------------+
| DMM | https://www.dmm.com/ |
+---------------+--------------------------------+
1 row in set (0.00 sec)
レコードの追加も成功です。では、これをpythonから取得してみます。ターミナル上での作業はここまで。ここからは、pythonの話です。
ライブラリMySQL Connector インストール
pythonでMYSQLに接続するライブラリ「mysql-connector-python」をインストールします。
pip installコマンドでインストールしています。難易度ゼロです。すぐに終わります。
!pip install mysql-connector-python
Collecting mysql-connector-python Downloading mysql_connector_python-8.0.32-py2.py3-none-any.whl (381 kB) |████████████████████████████████| 381 kB 5.8 MB/s eta 0:00:01 Requirement already satisfied: protobuf<=3.20.3,>=3.11.0 in /Users/horiguchitakashi/opt/anaconda3/lib/python3.9/site-packages (from mysql-connector-python) (3.19.1) Installing collected packages: mysql-connector-python Successfully installed mysql-connector-python-8.0.32
pythonからMySQL へ接続確認
pythonでMySQLに接続するコードを作成しています。 パスワードはgetpassライブラリを使って、コード実行時に入力するようにコーディングしています。
import mysql.connector
from mysql.connector import Error
from getpass import getpass
#接続情報登録
host_name='localhost'
user_name='root'
DB_NAME='mydb'
password=''
#パスワード入力
if password =='':
password = getpass('your password: ')
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=password,
database=DB_NAME
)
print("MySQL Database connection successful")
except Error as err:
print(f"Error: '{err}'")
your password: ········ MySQL Database connection successful
上記メッセージが表示されれば、接続成功です。
レコードを取得してみる
ターミナル上で作成したレコードを抽出してみます。sitelistテーブルにDMMのサイト情報を登録したので、それを取得します。
# DB操作用にカーソルを作成
cur = connection.cursor()
ret=cur.execute('select * from sitelist')
# 全てのデータを取得
rows = cur.fetchall()
#取得データを表示
print(rows)
[('DMM', 'https://www.dmm.com/')]
問題なく取得できましたね。
では、次回はツイートした商品番号をMySQLのテーブルに登録するコードと、ツイートする直前に商品番号からツイート済み商品かを確認してからツイートするコードを作ってみます。