SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

MySQL 編1 - インストール、ODBC ドライバ、日本語設定、トランザクション設定

突然、MySQL の最近のものが必要によって、インストールと環境設定を行うこと
にした。インストールに使用したパッケージは、
  mysql-4.0.13-win.zip
  MyODBC-3.51.06.exe
である。

■MySQL 4.0.13

  ・zip を解凍して、setup.exe を実行するだけである。
    私は、j:\mysql\ にインストールした。

■MySQL ODBC ドライバ 3.51.06

  ・MyODBC-3.51.06.exe を実行してインストールする。
    ODBC の設定は、デフォルトでユーザ DSN に設定されていた。
    これは ASP 等で困るので、MySQL のユーザ DSN を削除して、システム DSN
    として追加作成した。
    ODBC ドライバには、MySQL ODBC 3.51 Driver を指定する。

  Data Source Name: MySQL
  Description     : MySQL ODBC 3.51 Driver DSN
  Host/Sercer Name: localhost
  Database Name   : sak
  User            : sak
  Password        :
  Port            : 3306

■MySQL サービス開始

  ・開発用なので、手作業で開始処理することにした。
    サービスの開始は、次のプログラムを起動すると自動的に行われる。
    スタートアップに自動的に組みまれてもいたので、そちらは削除した。
    また、サービスにも MySql として自動設定されているので、こちらは
    手動に変更した。winmysqladmin.exe を手動で実行すると、サービスの
    MySql が開始される。

J:\mysql\bin\winmysqladmin.exe

  ・サービスの停止は、winmysqladmin.exe で、WINNT、Stop the Service を
    右ボタンクリックのメニューから実行する。
    尚、winmysqladmin.exe を終了してもサービスは動作している。
    Stop the Service を実行しないとサービスは終了しない。

■日本語の設定

  ・winmysqladmin.exe の my.ini Setup タグで、[mysqld] セクションに
    次のとおり追加した。(サービスを停止してから行うこと。)
    追加後、Save Nodification ボタンを押して更新しておくこと。

language=j:/mysql/share/japanese 
default-character-set=sjis 

■トランザクション設定

  ・winmysqladmin.exe の my.ini Setup タグで、mysqld-nt から
      mysqld-max-nt
    に変更する。(サービスを停止してから行うこと。)
    次に [mysqld] セクションに、次のとおり追加した。
    j:/mysql/data/trans/ フォルダは手作業で作成しておく。
    追加後、Save Nodification ボタンを押して更新し、サービスを起動する。
    尚、この設定は InnoDB 方式なのだが、もうひとつ別の設定方法もあった。

innodb_data_file_path=ibdata1:64M
innodb_data_home_dir=j:/mysql/data/trans/
innodb_log_group_home_dir=j:/mysql/data/trans/
innodb_log_arch_dir=j:/mysql/data/trans/
set-variable=innodb_mirrored_log_groups=1
set-variable=innodb_log_files_in_group=3
set-variable=innodb_log_file_size=5M
set-variable=innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_log_archive=0
set-variable=innodb_buffer_pool_size=16M
set-variable=innodb_additional_mem_pool_size=2M
set-variable=innodb_file_io_threads=4
set-variable=innodb_lock_wait_timeout=50

  ・実際にトランザクションを使用するには、テーブル単位に type=InnoDB を
    指定しなければならない。
    作成時になら、create table ... type=InnoDB; と、
    既に作成済みなら、alter table ... type=InnoDB; 
    alter のとき、文字化けのエラーのようなものが返ってくるのだが、
    Warnings: 0 で、正常にトランザクションは使用できた。

create table test (a char(4)) type=InnoDB;

alter table test type=InnoDB;

  ・トランザクションの操作は、次のようにする。
    尚、begin; でトランザクションを開始しない場合、オートコミットされる
    ようである。オートコミットの場合、ロールバックは使えない。

-- オートコミット
insert into test values ('a001');
insert into test values ('b002');

-- トランザクションコミット
begin;
insert into test values ('a100');
insert into test values ('b100');
commit;

-- トランザクションロールバック
begin;
insert into test values ('y999');
insert into test values ('z999');
rollback;

select * from test;

+------+
| a    |
+------+
| a001 |
| b002 |
| a100 |
| b100 |
+------+

  ・my.ini 全体は、次のようになっている。

#This File was made using the WinMySQLAdmin 1.4 Tool
#2003.05.26 16:04:25

#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions

[mysqld]
basedir=J:/mysql
#bind-address=10.1.1.2
datadir=J:/mysql/data
#language=J:/mysql/share/your language directory
language=j:/mysql/share/japanese 
default-character-set=sjis 
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
innodb_data_file_path=ibdata1:64M
innodb_data_home_dir=j:/mysql/data/trans/
innodb_log_group_home_dir=j:/mysql/data/trans/
innodb_log_arch_dir=j:/mysql/data/trans/
set-variable=innodb_mirrored_log_groups=1
set-variable=innodb_log_files_in_group=3
set-variable=innodb_log_file_size=5M
set-variable=innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_log_archive=0
set-variable=innodb_buffer_pool_size=16M
set-variable=innodb_additional_mem_pool_size=2M
set-variable=innodb_file_io_threads=4
set-variable=innodb_lock_wait_timeout=50
[WinMySQLadmin]
Server=J:/mysql/bin/mysqld-max-nt.exe
user=sak
password=********

■データベースの作成

  ・データベースを次のように作成した。
    test と言うデータベースは削除した。
    対話型ツール mysql.exe を次のように起動する。
    終了は、\q である。

J:\mysql\bin\mysql.exe -u root mysql

  ・mysql.exe 上で次のように処理した。

drop database test;

create database sak;

■ユーザの作成

  ・ユーザの作成を次のようにした。
    マニュアルを見て、パスワードを指定すると、ODBC も mysql.exe でも接続
    出来ず、仕方なく update でパスワードを消した。
    ユーザ sak に全ての権限を与えている。

insert into user (Host, User, Password) values ('localhost', 'sak', PASSWORD('sak'));
update user set Password='' where User='sak';

grant all on *.* to sak@localhost;

■以後のログイン

  ・データベース sak にユーザ sak でログインするには、次のようにする。

J:\mysql\bin\mysql.exe -h localhost -D sak -u sak

■mysql.exe での日本語表示

  ・日本語の設定をしたためか、項目名やデータに日本語が含まれていても正常
    に mysql.exe で select 表示できた。

select * from testm;

+--------+---------+---------+---------+
| キー   | データ1 | データ2 | データ3 |
+--------+---------+---------+---------+
| x001   |       1 |       2 |       3 |
| x002   |      10 |      20 |      30 |
| 日本語 |       1 |       2 |       3 |
| かんじ |      10 |      20 |      30 |
+--------+---------+---------+---------+

■MySQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2024 Y.SAK