2009/08/01

MySQLのセットアップ

このエントリーをはてなブックマークに追加
言わずと知れたMySQLはオープンソースのSQLデータベースです。

MySQL自体が定番とも言えるほどの人気者なので多くの解説を探すことができるものの、知識がないとやっぱり厳しい。
管理ツールは全編英語(※探せば日本語の管理ツールもあります)。
長らく真っ当な管理ツール(GUI)がなかったという偏見と、前提知識が当たり前のように要求されるという意味もあって敬遠しがちでした。

選択肢としてあるとものすごく便利なので、緊急に必要あってというわけではないけれど学習のために弄っています。
いくつか嵌った点を含めて書いておきます。

●MySQLのダウンロード&インストール

MySQLはバージョン5.1.35。
MySQLの本体部分のインストールなど、下記サイトが参考になりました。


バージョン違いのため、多少セットアップ画面が異なるところがあったもののすんなりインストールできた(と思います)。


●MySQL GUI Toolsのインストール

バージョンは5.0。
MySQLを管理するための管理ツールをインストールした。公式から入手できるといこともあってこれを使うことに。
  1. MySQL Administrator
  2. MySQL Migration Toolkit
  3. MySQL Query Browser
  4. MySQL System Tray Monitor
下記のサイトで全部説明してくれてるので説明は省略。


●ネットワークアクセスの設定

他のマシンからネットワークを通してDBをメンテすることもあると思ってアクセスしてみたがつながらない…。
MySQL Query Browserから「Server Host」を所定のマシンに設定して接続してみた。ローカル環境で「127.0.0.1」を指定する分には問題なくつながることは確認済み。
このようなエラーが出る。

Could not connect to the specified instance.
MySQL Error Number 2003
Can't connect to MySQL server on '(IP)'(10061)
If you want to check the network connection, please click the Ping button.
「指定されたインスタンスに接続できませんでした」ということらしい。
原因の対策には下記のサイトが参考になりました。


要点は、
1.ポート(一般には3306)が開いていない
2.MySQLのユーザー権限設定が変更されていない
3.my.ini になぜか bind-addressが設定されている
二番目の、ユーザー権限設定については知らないと辛い。つまり許可設定しないと接続できないのは当たり前。
項目をそれぞれ確認して、設定したところ接続を確認することができました。

●他のDBから移行

Access2000のMDBから移行するという案件をシミュレートしてみる。MySQL Migration Toolkitを使えば楽チンにできるという甘い言葉に誘われてやってみました。
が、もちろん何も知らないで触ってるわけで、二箇所ほどで詰まりました。その回避策を書いておきます。

Source Database Connectionに「MS Access」を指定。パスワードなどが掛かっている場合は、ユーザー名、パスワードを指定することができるのでしょう。
ウィザード形式で次へ画面を送っていって、一応最後の画面まで到達。

・一行たりともインポートされてない

MySQL Query Browserで見てみると、スキーマが作成されていて、テーブルが作られている。けれど、中身がありません。一行もインポートされていない模様。
もう一度、MySQL Migration Toolkitを起動させて、同様の手順を踏むも、同じ。

いろいろ触りながら、調べていくと、キャラクターコードの設定があるらしいということに行き着く。
MySQL Migration Toolkitの「ObjectMapping」の工程にて、SetParameterを押して設定情報を表示させて、DataBaseとTableのキャラクターコードが設定できるようになっている。
初期は、「Latin1」となっている。
「utf8」を設定することで、「Bulk Transfer」の工程でレコードが吸い出されるようになった。

・1300行足らずしかインポートされない

で、再度MySQL Query Browserで確認してみたけれど、なんて中途半端な。
テーブルの構成から何から確認してみたものの、結局MySQL Migration Toolkitの「Bulk Transfer」の進捗状況が行ったり来たりしてもたもたしていてることが気になってログを見ると、下記のようなメッセージがある。
Packet for query is too large (1067387 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

my.iniにmax_allowed_packetというパラメータを設定してあげればよい、とのこと。
MySQL Administratorでは、Startup Variablesから「Advanced Networking」の「Max.packet.size」を設定する(当方は16Mに設定)。
無事にテーブルとレコードの移行が完了、確認できた。

※mysql.ini変更の際はサーバーの再起動をお忘れなく。

0 件のコメント :

コメントを投稿