フリーで使えるリレーショナル データベース「MySQL」のセットアップをレポートしました。Oracleにやや近いとか言われてますね。PostgreSQLと違うのは、Windowsでサービス起動できることです。ナイス! でも、副問い合わせや、まともなトランザクションには対応していません。
初稿時の MySQLのバージョンは 3.23.53 です。 - 2002.10.18
インストールする
- http://www.mysql.com/downloads/ からWindows用バイナリ(Default package)を入手。今回は[mysql-3.23.53-win.zip(13.2MB)]
- zipファイルを展開して、SETUP.EXEを実行し、C:\mysql にインストールする。 <- インストールする場所を変えるには、ちょっと手順が必要です。
my.ini
Windowsでは%WINDIR%\my.ini、Linuxでは /etc/my.cnf ですね。%MYSQL_DIR%\my-medium.cnfファイルなどから新規に作成します。
MySQL の自動起動と自動停止
- %MYSQL_DIR%\bin\mysqld-nt --install を実行してWindowsサービスとして登録する。
ユーザにパスワードを設定する
- %MYSQL_DIR%\bin\mysql mysql を実行してMySQL Monitorを起動する。
C:\mysql\bin\mysql mysql
- update user set password = password('******'); SQL文を実行し、(とりあえず)全てのユーザにパスワードを設定する。******は任意のパスワード。
- 以下のコマンドで、特権テーブルを再読込みする。
mysql> flush privileges;
ユーザを追加したりいろいろやってると、上記の再読込みだけでは設定変更が有効にならないことがあるらしい。その際は、Windowsサービス[MySql]を再起動するしかないかも。
データベースを作成する
- %MYSQL_DIR%\bin\mysqladmin -u root -p create {dbname} を実行する。{dbname}は任意のデータベース名。
- %MYSQL_DIR%\bin\mysqlshow -p でデータベース一覧表示。(もしくは mysql>show databases)
テーブル作成
- %MYSQL_DIR%\bin\mysql -u root -p {dbname} を実行してMySQL Monitorを起動する。
- 後は、mysql>create table を実行すればOK。
- mysql>show tables でテーブル一覧表示。
- %MYSQL_DIR%\bin\mysqldump -p {dbname} > C:/extdata.sql <- 保存先は任意
データベースの復元
- %MYSQL_DIR%\bin\mysql -p {dbname} < C:/extdata.sql
JDBCドライバ
- http://www.mysql.com/downloads/ から MySQL Connector/J 2 を入手。今回は[mysql-connector-java-2.0.14.zip(435KB)]
- ドライバ名:org.gjt.mm.mysql.Driver
- URL:jdbc:mysql://{hostname}/{dbname}?useUnicode=true&characterEncording={DBの文字コード}
ODBCドライバ
- http://www.mysql.com/downloads/ から MyODBC 2.50 を入手。今回は[myodbc-2.50.39-nt.zip(1.45MB)]
- zipファイルを展開して、SETUP.EXEを実行し、インストールする。
- MySQLで日本語を扱うためには、my.ini に以下のように default-character-set=sjis 行を追加する。この行がなくても一見日本語がうまく入力できたように思えるかもしれないが、「ソ」「構」「能」「表」など 5C のコードを含む文字 が文字化けを起こすという現象が発生する。
[mysqld]
basedir=C:/MYSQL
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
[WinMySQLadmin]
Server=C:/MYSQL/bin/mysqld-opt.exe
- my.iniを上記のように変更しただけでは以下のエラーが表示されるようになる。
File 'c:\mysql\\share\charsets\sjis.conf' not found (Errcode: 2)
Character set '#13' is not a compiled character set and
is not specified in the 'c:\mysql\\share\charsets\Index' file
これは sjis.conf ファイルがないからであり、SoftAgencyによると、sjis を使えるようにバイナリを作成し直せば解決するらしいが… ;
- そのスキルがなければ、&ref(): The style ref(filename,pagename) is ambiguous and become obsolete. Please try ref(pagename/filename); を c:\mysql\share\charsets に置けば解決する。このファイルはいとさんの手作りらしいので、"合っている保障はない"。
管理ツール
MySQL.comに、MySQL Administratorなるものがありまして、DBMSの状態監視なんかは、これでできます。
メンテナンス用のツールとしては、MySQL Control Centerよりも、かねやんMySQLAdminの方が、デフォルトで日本語サポートしてる分だけ好きです。