
MAMPのmysqlをターミナルから操作したい!
こういった悩みを持っている方への記事です。
筆者は現在web制作フリーランス2年目でして、webエンジニアの方面へも仕事の幅を広げるためにプログラミングを学習中です。
今回は、MAMPのデータベースを使用する際にターミナルからテーブルを作成したので、そのアウトプットを行います。(今回はmac環境です)
5分で読めるので、ご興味のある方はぜひ最後まで読んでみてください。
MAMPを起動しデータベースを作成
MAMPの起動とデータベースの作成は今回は省略しますが、簡単な流れは下記です。
↓
MAMPのホーム画面が出てくるので、ヘッダーのToolsからphpMyAdminを選択
↓
phpMyAdminが開けたら、データベースを作成
↓
サイドバーのNewボタンをクリックし、データベースを作成
(コマンドからデータベースを作成してもおけです。)

テーブルを作成する
実際にテーブルを作成していきます。
binディレクトリへ移動
まずは、MAMPのmysqlを操作できるディレクトリであるbinディレクトリへ移動します。
ルートディレクトリから、下記のコマンドで移動ができます。
$ cd /Applications/MAMP/Library/bin/
mysqlを起動する
次にmysqlを起動します。
下記コマンドを順に実行してください。
mysql.server start
./mysql -u root -p
//パスワードを聞かれるので、MAMPで設定しているパスワードを記入。多分、root。
実行後、mysqlが起動します。
mysql>の入力待ち状態が表示されていたらOKです。
抜ける時は、exitまたはquitで抜けぬことができます。
テーブルの構成を確認する
今回はstaffテーブルとproductテーブルの二つのテーブルを作成します。
箇条書きの項目は、テーブルに指定する「カラム名(その属性)」です。
・id (auto_increment, primary key)
・name (varchar)
・password (varchar)
・id (auto_increment, primary key)
・name (varchar)
・price (varchar)
・image (varchar)
auto_incrementとは?
カラムに値が指定されなかった場合、MySQLが自動的に値を割り当てる。
MySQLのAUTO_INCREMENTについて色々と調べてみた。
データ型は整数。
値は1ずつ増加して連番になる。
今回は、idにauto_incrementを指定しているので、データ(レコード)が入るたびにidは1づつ増えながら指定されます。
primary keyとは?
データベースのデータ(レコード(1行))を一意に識別するための項目です。
一意とは、重複しないでということ。
これもidに指定しているので、重複するidは作られないことになります。
SQL文でテーブルを作成する
テーブルを作成する前に、どのデータベースで作成するか下記コマンドで指定します。
use myshop;
myshopの箇所は、ご自身で作成されたデータベース名にしてください。
SQL文でテーブルを作成します。
staffテーブル
create table staff( id integer auto_increment not null primary key, name varchar(255), password varchar(255));
productテーブル
create table product (id integer auto_increment not null primary key, name varchar(255), price integer(255), image varchar(255));
実行できたら、Query OKと表示されます。

phpMyAdminを確認してみると、

作成されていることが確認できます。
sqlファイルを作成し実行する
別の方法に、sqlファイルを作成しテーブルを作成する方法もあります。
今回は、例としてdatabaseディレクトリ内に、shop.sqlファイルを作成します。
shop.sqlファイル
CREATE TABLE test (
id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
name VARCHAR(255),
password VARCHAR(255)
);
CREATE TABLE test2 (
id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
name VARCHAR(255),
price INTEGER(255),
image VARCHAR(255)
);
sqlファイルにSQL文を記載したら、ターミナルでコマンドを実行します。
実行方法はいくつかありますが、今回はsourceコマンドを使った例をみていきます。
mysql> source /Applications/MAMP/htdocs/myshop/database/shop.sql
sourceコマンド以下にsqlファイルまでのファイルパスを指定し、実行します。
まとめ
今回は、MAMPのmysqlをターミナルで操作し、テーブルを作成する方法を解説しました。
MAMPを使う際、phpmyadminからテーブルも作成できますが、ターミナルで実際にSQL分を書いて作成することもできます。
SQL文は今後使うことになってくると思うので、使えるようになっておいた方が良さげですね。
参考サイト




