MySQLコマンドラインによるデータベース操作のメモ

この記事でPythonプログラムからMySQLデータベースにアクセスする方法について公式ドキュメントの抜粋をしたが、事前準備などで使うMySQLコマンドラインの操作を備忘録としてまとめておく。

スポンサーリンク

MySQLユーザーとデータベースの作成

MySQLをrootで起動する。シェルからパスワードを指定する場合は以下。(パスワードが丸見えになる)

$ sudo mysql -u root -ppasswd

もしくは、以下を実行。(パスワードは表示されない)

$ sudo mysql -u root -p

MySQLコマンドラインで、専用ユーザ(bmsuser)を作成する。

create user bmsuser identified by 'passwd';

新しいデータベース(liionbms)の作成。

create database liionbms;

専用ユーザ(bmsuser)の、新しいデータベース(liionbms)へのアクセス権限を設定する。

grant all privileges on liionbms.* to bmsuser;

テーブルの作成

新しく作ったユーザ(bmsuser)で接続し直す。

$ mysql -u bmsuser -ppasswd

テーブルの作成。

create table ivdata (ts timestamp not null primary key, ch1_i float, ch1_v float, ch2_i float, ch2_v float, chg_i float, chg_v float, flags tinyint);

テーブルにカラムを追加/削除する

まずはSHOW COLUMNで現状のテーブルを確認。

mysql> show columns from ivdata;
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| ts    | timestamp | NO   | PRI | NULL    |       |
| ch1_i | float     | YES  |     | NULL    |       |
| ch1_v | float     | YES  |     | NULL    |       |
| ch2_i | float     | YES  |     | NULL    |       |
| ch2_v | float     | YES  |     | NULL    |       |
| chg_i | float     | YES  |     | NULL    |       |
| chg_v | float     | YES  |     | NULL    |       |
| flags | tinyint   | YES  |     | NULL    |       |
+-------+-----------+------+-----+---------+-------+
8 rows in set (0.01 sec)

ALTER TABLEでch2_vの後ろにch3_iとch3_vを追加する。

mysql> alter table ivdata add ch3_i float after ch2_v, add ch3_v float after ch3_i;
Query OK, 0 rows affected (0.21 sec)

再度SHOW COLUMNでテーブルを確認。ちゃんと指定場所にカラムが追加されている。

mysql> show columns from ivdata;
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| ts    | timestamp | NO   | PRI | NULL    |       |
| ch1_i | float     | YES  |     | NULL    |       |
| ch1_v | float     | YES  |     | NULL    |       |
| ch2_i | float     | YES  |     | NULL    |       |
| ch2_v | float     | YES  |     | NULL    |       |
| ch3_i | float     | YES  |     | NULL    |       |
| ch3_v | float     | YES  |     | NULL    |       |
| chg_i | float     | YES  |     | NULL    |       |
| chg_v | float     | YES  |     | NULL    |       |
| flags | tinyint   | YES  |     | NULL    |       |
+-------+-----------+------+-----+---------+-------+
10 rows in set (0.00 sec)

ちなみに、場所を指定しなくて良ければカラムの追加のSQL文はもう少し簡単になる。(一番後ろに追加される)

alter table ivdata add (ch4_i float, ch4_v float);

間違えて追加したカラムをALTER TABLEで削除する。

alter table ivdata drop column ch4_i, drop column ch4_v;

まとめ

MySQLデータベースにデータを記録出来るようにする事前準備としては、

  1. ユーザー作成
  2. データベース作成
  3. テーブル作成

の3つだろう。既存のユーザーを使い回せばユーザー作成は省略可能。

一度テーブルを作ってしまえば、下記記事のようにPythonプログラムから簡単にデータの追加は出来るようになる。

テーブル作成などはPythonコードから実行しようと思えば出来ないこともないが、MySQLコマンドラインから実行した方が簡単だと思う。PythonプログラムとMySQLコマンドラインの使い分けが使いこなしのコツかもしれない。

コメント