トップページ -> 研究道具箱と教材 -> Aapche, MySQL, PHP, phpMyAdmin のインストールと各種ツールの使用法 -> MySQL コマンドライン・クライアント
[サイトマップへ]  

MySQL コマンドライン・クライアント

MySQL コマンドライン・クライアントとは, Windows のコマンドプロンプトなどで動作するツールです. この Web ページでは,MySQL のコマンド で下記の操作を行う手順を,図解で説明します. (コマンドの簡単な説明と,コマンドを実行させるための操作手順の両方を説明します).

参考 Web ページ: http://itpro.nikkeibp.co.jp/article/COLUMN/20060120/227621/?ST=oss

参考 Web ページ: http://www.javadrive.jp/mysql/administrator/index.html


必要となるソフトウエア

あらかじめ決めておく事項

この Web ページでは,データベースの作成を行いますので, 作成するデータベースのデータベース論理名と漢字コードと照合順序を決めておくこと. この Web ページでは,次のように書きます.

この Web ページでは,データベース・一般ユーザのアカウント作成しますので,そのユーザ名パスワードを決めておくこと. この Web ページでは次のように書きます.

データベース・一般ユーザのアカウント作成データベースの作成と権限の設定には, MySQL データベース管理者 (root)パスワード必要になるので,前もって調べておくこと.


MySQL コマンドライン・クライアントの機能

MySQL コマンドライン・クライアントが持つ以下の機能を説明します.


MySQL コマンドライン・クライアントの起動と終了

起動

Windows のコマンドプロンプトを使います.

MySQL データベース管理者(root) でログインするときは,次のように,-u のあとに「root」と書きます.

mysql -u root -p

このあと,パスワードを入力してログインする.

mysql が起動しないときの対処法

終了

exit で終了


 

データベース・一般ユーザのアカウント(ユーザ名とパスワード)作成

データベース・一般ユーザのアカウント(ユーザ名とパスワード)を作成するには, 次の手順を踏みます.

  1. MySQL コマンドライン・クライアントの起動
    mysql -u root -p
    

    このあと,パスワードを入力してログインする.

    このとき,MySQL データベース管理者(root) でログインすること. 権限上,MySQL データベース管理者だけがアカウントを作成できるため.

  2. create user コマンドによるアカウント作成

    ユーザ名として testuser,パスワードとして hoge$#34hoge5 を設定したいときの操作は次の通り.

    	mysql> create user testuser identified by 'hoge$#34hoge5';
          

パスワードの変更

現在ログイン中のユーザについて, パスワードを hoge!%12hoge5に設定したいときの実行例

mysql> set password = PASSWORD('hoge!%12hoge5');
  

なお,現在ログイン中のユーザが何であるかは,「select USER();」で確認できる.

アカウントの削除 MySQL データベース管理者の権限で, アカウントの削除を行いたいときがあります.このときは 「drop user <ユーザ名> ;」のように,drop user を使います.


 

データベースの作成と権限の設定

データベースを作成するには,次の手順を踏む.

  1. (前準備)データベース名と,漢字コードと、照合順序を決めておく

    「create database」で,データベースを生成するときに,漢字コードと照合順序を指定できます. (照合順序といっているのは,ソートや集約における照合において,デフォルトでは,大文字と小文字を区別するかそうでないかを指定するという意味です. 詳しくは http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html

    MySQLが扱える漢字コードは,下記のように,複数種類あります.

  2. MySQL コマンドライン・クライアントの起動
    mysql -u root -p
    

    このあと,パスワードを入力してログインする.

    このとき,MySQL データベース管理者(root) でログインすること. 権限上,MySQL データベース管理者だけがデータベースを作成できるため.

  3. create database コマンドによるデータベース作成

    例えば,

    の場合には次のようになります.

    mysql> CREATE DATABASE testdb DEFAULT CHARACTER SET cp932 COLLATE cp932_japanese_ci;
    

    「DEFAULT CHARACTER SET ...」の部分は漢字コードの指定, 「COLLATE ...」の部分照合順序の指定です.

    ※ 単に,「create database testdb;」を実行すると,デフォルトの漢字コードである UTF8 になります(これは UNICODE ).

  4. データベースの確認

    出来た データベースは,show databasesコマンドで確認できる.

    mysql> show databases;
    

権限について

このままでは,出来たデータベースは,MySQL データベース管理者にしか使えない. 権限を設定して,一般ユーザにもデータベースが使えるようにする.

データベース testdb の使用権限を,ユーザtestuser に与えるための操作は次の通り(grant コマンドを使用).

mysql> grant all on testdb.* to 'testuser';

 

SQL の編集と実行

SQL によるテーブルの定義と,問い合わせと,更新の実行例は下記の通り.

要点:最初に,MySQL コマンドライン・クライアントで, 「use testdb;」のように,使用するデータベース名を設定

  1. MySQL コマンドライン・クライアントの起動

    データベース・一般ユーザのアカウントでログインすること.

    mysql -u testuser -p
    

    このあと,パスワードを入力してログインする.

  2. use コマンドを使い,使用するデータベースを設定

    例えば,データベース testdb を使う場合は,次の通り

          use testdb; 
    

  3. SQL の編集と実行
          CREATE TABLE commodity (
              type INTEGER primary key not null,
              name VARCHAR(32) not null,
              price INTEGER );
          INSERT INTO commodity VALUES( 1, 'apple', 50 );
          INSERT INTO commodity VALUES( 2, 'orange', 20 );
          INSERT INTO commodity VALUES( 3, 'strawberry', 100 );
          INSERT INTO commodity VALUES( 4, 'watermelon', 150 );
          INSERT INTO commodity VALUES( 5, 'melon', 200 );
          INSERT INTO commodity VALUES( 6, 'banana', 100 );
          SELECT * FROM commodity;
    

    期待される結果.

          TYPE NAME       PRICE
           ---- ---------- -----
              1 apple         50
              2 orange        20
              3 strawberry   100
              4 watermelon   150
              5 melon        200
              6 banana       100
    

    以下は,動作画面.


ファイルに入った SQL の実行

source <ファイル名>

 

テーブルの一覧表示

データベース内のテーブル一覧を表示するには,show tablesコマンドを使います. (use コマンドを使いたくないときは,「show tables from testdb;」でも OK ).

mysql> use testdb;
mysql> show tables;