読者です 読者をやめる 読者になる 読者になる

たなかこういちの資料室

システム開発に携わる筆者があれこれ試したことや学んだことについてのまとめ

MySQLの導入と最も基本的なコマンドの説明

MySQLの導入および初期設定の実施記録と、開発環境として運用するのに必要最小限のコマンドの説明を記します。
 
■ 前提
ダウンロード
 
1. 下記サイトを開きます。
 
 
f:id:tanakakoichi9230:20140926033025p:image
 
2. スクロールして、「Mac OS X 10.7 (x86, 64-bit), DMG Archive」の「Download」ボタンを押下します。
 
f:id:tanakakoichi9230:20140926033035p:image
 
3. 次の画面では、画面下方の「No thanks, just start my download.」をクリックして、"mysql-5.6.16-osx10.7-x86_64.dmg"をダウンロードします。
 
インストール
 
1. ダウンロードした"mysql-5.6.16-osx10.7-x86_64.dmg"をFinderから開きます。
 
f:id:tanakakoichi9230:20140926033043p:image
 
2. "mysql-5.6.16-osx10.7-x86_64.pkg"を、右クリックメニュー→Commandキー+「開く」で実行します。指示に従ってインストールを進めます。
 
3. 下記のように、"/usr/local/mysql-5.6.16-osx10.7-x86_64"に導入され、シンボリックリンク"/usr/local/mysql"が作成されます。
 
f:id:tanakakoichi9230:20140926033049p:image
 
4. DMG内には、他に二つユーティリティが入っています。それぞれ下記の用途です。必要に応じて実行してください。
 
MySQL.prefPane ... 「システム環境設定」からMySQLの起動・停止をできるようにセットアップする
MySQLStartupItem.pkg ... OS起動時にMySQL自動起動するようセットアップする
 
※ここではいずれも実行しません。
 
5. 利便のため、下記のsymlinkを作成しました。
 
/usr/local/bin/mysql -> /usr/local/mysql-5.6.16-osx10.7-x86_64/bin/mysql
 

/usr/local/bin/mysqladmin -> /usr/local/mysql-5.6.16-osx10.7-x86_64/bin/mysqladmin

 
/usr/local/bin/mysqldump -> /usr/local/mysql-5.6.16-osx10.7-x86_64/bin/mysqldump
 
/usr/local/bin/mysql.server -> /usr/local/mysql-5.6.16-osx10.7-x86_64/support-files/mysql.server
 

サーバーの起動と停止

 

mysql.serverでサーバーの起動、停止を行います。

 
$ sudo mysql.server start
 
$ sudo mysql.server stop

mysql.serverコマンドについては下記ページに説明があります。
 
http://dev.mysql.com/doc/refman/5.6/en/mysql-server.html
 
確認
 
サーバーを起動した状態で、下記の確認をします。
 
【mysqladminでversionを表示】
-----(ここから)-----
$ mysqladmin version
mysqladmin  Ver 8.42 Distrib 5.6.16, for osx10.7 on x86_64
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Server version          5.6.16
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 3 min 26 sec
 
Threads: 1  Questions: 5  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.024
-----(ここまで)-----
 
mysqlで「status」を実行】
-----(ここから)-----
$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.16 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
 
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> status
--------------
mysql  Ver 14.14 Distrib 5.6.16, for osx10.7 (x86_64) using  EditLine wrapper
 
Connection id:          5
Current database:    
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.6.16 MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 40 min 16 sec
 
Threads: 1  Questions: 31  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.012
--------------
 
-----(ここまで)-----
 
データーベース、ユーザー、テーブルの作成(mysqlコマンド)
 
データベースの作成、ユーザーの作成、その他各種SQLの実行は、mysqlコマンドで行います。
 
mysqlコマンドについては下記ページに説明があります。
 
http://dev.mysql.com/doc/refman/5.6/en/mysql.html
 
起動(サーバーへ接続)
 
localhostのサーバーに接続。
 
$ mysql -u user
 
指定したホストのサーバーに接続。
 
$ mysql -u user -h serverhost
 
データベース作成
 
mysqlコマンドを起動して、まず、「show databases」して、次に"bar"データベースを作成。作成後再び「show databases」して"bar"データベースが作成されていることを確認。
 
    -----(ここから)-----
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.16 sec)
    
    mysql> create database bar;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | bar                |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql
    -----(ここまで)-----
 
ユーザーの作成
 
"bar"データベースの全てのテーブルに対して全権限を持つユーザー、"foo"を作成。パスワードに"himitsu"を指定。
 
-----(ここから)-----
mysql> grant all on bar.* to foo@localhost identified by 'himitsu';
Query OK, 0 rows affected (0.01 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
-----(ここまで)-----

作成済みユーザーは"mysql.user"をselectして確認。

-----(ここから)-----
mysql> select host, user, password from mysql.user;
+------------------+------+-------------------------------------------+
| host             | user | password                                  |
+------------------+------+-------------------------------------------+
| localhost        | root |                                           |
| silkyebisu.local | root |                                           |
| 127.0.0.1        | root |                                           |
| ::1              | root |                                           |
| localhost        |      |                                           |
| silkyebisu.local |      |                                           |
| localhost        | foo  | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+------------------+------+-------------------------------------------+
7 rows in set (0.00 sec)
 
-----(ここまで)-----
 
テーブルの作成
 
「現在のデータベース」を「use」で変更。
 
-----(ここから)-----
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.16, for osx10.7 (x86_64) using  EditLine wrapper
 
Connection id:          6
Current database:    
Current user:           root@localhost
・・・(略)・・・
Uptime:                 1 hour 6 min 25 sec
 
Threads: 1  Questions: 48  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.012
--------------
 
mysql> use bar
Database changed
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.16, for osx10.7 (x86_64) using  EditLine wrapper
 
Connection id:          6
Current database:       bar
Current user:           root@localhost
・・・(略)・・・
Uptime:                 1 hour 6 min 35 sec
 
Threads: 1  Questions: 55  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.013
--------------
 
-----(ここまで)----- 
 
テーブル"hoge"を作成。このとき「ENGINE=InnoDB」を指定する。
 
-----(ここから)-----
mysql> CREATE TABLE hoge (id INT) ENGINE=InnoDB;
Query OK, 0 rows affected (0.43 sec)
 
-----(ここまで)-----
 
※"TYPE"は"ENGINE"の同義語として5.4までサポートされていました。5.5以降でキーワード"TYPE"は廃止されキーワード"ENGINE"のみ使用できるようになりました。
 
※CREATE TABLE文の説明は下記ページにあります。
 
 
作成したテーブルの確認。
 
-----(ここから)-----
mysql> desc hoge;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.44 sec)
 
-----(ここまで)-----
 
データベースのdumpとrestore
 
データベース全体のdump(吐き出し)
 
バックアップもしくはデータベースの移行や複製のために、データベース全体をファイルに書き出すには、mysqldumpコマンドを用います。
 
$ mysqldump -u user -h serverhost dbname > dumpfilename
 
※mysqldumpコマンドについては下記ページに説明があります。
 
http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
 
生成されたファイルはCREATE TABLE文やINSERT文の並んだスクリプトとなっています。
 
データベース全体のrestore(取り込み)
 
mysqldumpコマンドで書き出されたファイルは、データベース全体を再現するCREATE TABLE文やINSERT文などの並びとなっています。データベースをrestoreするには、このスクリプトmysqlコマンドで実行します。
 
$ mysql -u user -h serverhost -D dbname < dumpfilename
 
◆以上