MySQL Community サーバ のインストール,データベース作成,テーブル定義とレコード挿入,各種設定(Windows 上)

概要

Windows 環境での MySQL のインストールと初期設定について説明する.MySQL のインストール手順,データベース管理者(root)としての接続方法,データベースの作成と権限設定,テーブル定義とレコード挿入の例を説明する.さらに,コマンドプロンプト(Windows のコマンドライン環境)を使用した MySQL の操作,管理者パスワードの設定,キャラクタセットの設定方法など,MySQL の基本的な操作と設定について順を追って説明する.

目次

関連する外部ページ

【サイト内の関連ページ】

MySQL 活用ガイド

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

MySQL のインストール

MySQL 8.1 以降では,従来の MySQL Installer は廃止され,MySQL Community サーバの MSI インストーラでインストールし,同梱の MySQL Configurator で設定する方式に変更された.ここでは Windows パッケージマネージャ winget を使う方法を示す.winget は,最新の MySQL Community サーバの MSI を取得してインストールする.

  1. 次のコマンドを管理者権限コマンドプロンプトを起動する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

    次のコマンドは,MySQL Community サーバをインストールするものである.

    winget install --scope machine Oracle.MySQL
    
  2. インストールが終わると,MySQL Community サーバとともに,設定用の MySQL Configurator がインストールされる.スタートメニューの「MySQL」グループから MySQL Configurator を実行し,画面の指示に沿って設定する.

    設定では,主に次の項目を指定する.

    • サーバの種類(既定のままでよい)
    • ネットワークとポート番号(既定のままでよい.既定のポート番号は 3306)
    • 認証方式(既定のままでよい)
    • MySQL データベース管理者 (root) のパスワード(「あらかじめ決めておく事項」で決めたパスワードを設定する)
    • Windows サービスの設定(既定のままでよい.既定では Windows 起動時に MySQL サーバが自動起動する)
  3. 設定が完了すると MySQL サーバが起動する.MySQL Configurator は,設定に応じて MySQL サーバを Windows サービスとして登録するので,以後は Windows の起動時に MySQL サーバが自動的に起動する.

MySQL に,データベース管理者として接続

  1. 次のコマンドを管理者権限コマンドプロンプトを起動する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。 することにより,C:\Program Files\MySQL\MySQL Server 9.7\bin をシステム環境変数 PATH に追加し, mysql.exe にパスを通す
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\Program Files\MySQL\MySQL Server 9.7\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    
  2. 新しく,Windows で,コマンドプロンプトを実行
  3. MySQL データベース管理者(root) でログイン

    MySQL データベース管理者(root) でログインしたいので,次のように,-u のあとに「root」と書く.

    mysql -u root -p
    
  4. このあと,MySQL データベース管理者のパスワードを入力してログインする.

    画面にパスワードが表示されないのは正常動作.

    実行後,エラーメッセージが出ないことを確認

  5. 「\quit」で終了する.

データベースの作成と権限の設定 (Windows 上)

データベースを作成するために,SQL の create database コマンドを使用する.

  1. Windows で,コマンドプロンプトを実行
  2. MySQL データベース管理者(root) でログイン

    MySQL データベース管理者(root) でログインしたいので,次のように,-u のあとに「root」と書く.

    mysql -u root -p
    
  3. このあと,MySQL データベース管理者のパスワードを入力してログインする.

    画面にパスワードが表示されないのは正常動作.

    実行後,エラーメッセージが出ないことを確認

  4. データベース生成

    utf8 の場合の生成例

    create database testdb default character set utf8 collate utf8_unicode_ci;
    

    cp932 の場合の生成例

    create database testdb default character set cp932 collate cp932_japanese_ci;
    
  5. show databases;」で,データベースが生成されたことを確認
    show databases;
    
  6. \quit」で終了.
    \quit
    

テーブル定義とレコード挿入

  1. Windows で,コマンドプロンプトを実行
  2. mysql -u root -p -D testdb」により,MySQL データベース管理者でログイン

    root」は MySQL データベース管理者のユーザ名, 「testdb」はデータベース名.

    mysql -u root -p -D testdb
    
  3. このあと,MySQL データベース管理者のパスワードを入力してログインする.

    画面にパスワードが表示されないのは正常動作.

    実行後,エラーメッセージが出ないことを確認

  4. SQL を用いたテーブル定義
    create table order_records (
        id            integer primary key not null,
        year          integer not null CHECK ( year > 2008 ),
        month         integer not null CHECK ( month >= 1 AND month <= 12 ),
        day           integer not null CHECK ( day >= 1 AND day <= 31 ),
        customer_name text not null,
        product_name  text not null,
        unit_price    real not null check ( unit_price > 0 ),
        qty           integer not null default 1 check ( qty > 0 ),
        created_at    timestamp not null default current_timestamp,
        updated_at    timestamp not null default current_timestamp on update current_timestamp,
        check ( ( unit_price * qty ) < 200000 ) );
    
  5. SQL を用いたレコード挿入
    start transaction;
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1, 2023, 7, 26,  'kaneko', 'orange A', 1.2, 10 );
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 2, 2023, 7, 26,  'miyamoto', 'Apple M',  2.5, 2 );
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 3, 2023, 7, 27,  'kaneko',   'orange B', 1.2, 8 );
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price) values( 4, 2023, 7, 28,  'miyamoto',   'Apple L', 3 );
    commit;
    
  6. 更新し確認表示
    start transaction;
    update order_records set unit_price = 11.2 where id = 1;
    commit;
    select * from order_records;
    
  7. 確認表示
    select * from order_records;
    
  8. テーブル一覧の表示
    show tables;
    
  9. \quit」で終了.
    \quit
    

MySQL データベース管理者 (root) パスワードの設定

次の手順でパスワードを変更できる.

  1. MySQL が稼働した状態にする
  2. すでにパスワードを設定済みで,変更をしたい場合は,次のように操作.
    mysqladmin --user=root --password=(古いパスワード) password "(新しいパスワード)"
    

キャラクタセットに関する設定

既定(デフォルト)のキャラクタセットとして, cp932utf8 などを以下の手順で設定しておく.

  1. my.ini」をエディタで開く

    my.ini は, C:\ProgramData\MySQL\MySQL Server 9.7 のようなディレクトリにある.

  2. 次の2箇所を追加する

    * 文字コードcp932にしたい場合には,次のように my.ini を書きかえる.

    もし,すでに,「default-character-set=latin」のような行が存在する場合には, 「cp932」のように書き換える

    1. [mysqld]部分
      character-set-server=cp932
      
    2. [mysql]部分
      default-character-set=cp932
      

    * 文字コードutf8にしたい場合には,次のように my.ini を書きかえる.

    1. [mysqld]部分
      character-set-server=utf8
      
    2. [mysql]部分
      default-character-set=utf8
      
  3. 書き換えた後は,MySQL サーバを再起動
  4. status コマンドを使い,キャラクタセット(character set) の設定が「cp932」になっていることを確認.