2009-01-13
セカンダリ DNS サーバを設定する
今回使用したのは Windows Server 2008 の DNS サービスです。既存の DNS サーバは どちらもWindows Server 2000 Advanced で運用しています。
今回成功したセカンダリ DNS サーバの設定方法は次のとおりです。
1. サーバーマネージャの役割から DNS サービスを追加します。
2. プライマリ DNS サーバ(外向き用)の localhost.dns および 0.0.127.in-addr.arpa.dns 以外のゾーンファイルを新しいサーバ側のゾーンファイルディレクトリにコピーします。
(ゾーンファイルは Windows Server 2000 は \WinNT\System32\dns 配下、Windows Server 2008 は /Windows/System32/dns 配下にあります。)
3. セカンダリ DNS サーバ側のゾーン追加で localhost をプライマリとして一旦登録します。
前方参照ゾーンを右クリックすると表示されるサブメニューから、「新しいゾーン...」を選択すると「新しいゾーンウィザード」が表示されますので、ここより[プライマリゾーン]を選択します。
“次へ”をクリックして、「localhost」と入力します。これはセカンダリ DNS サーバ自身の参照を指します。
localhost のゾーンファイルを自動作成します。
“次へ”をクリックして、localhost ゾーン設定を一旦終了します。
4. 現在は localhost ゾーンはプライマリ DNS として動作するようになっているため、これをセカンダリ DNS に変更します。
localhost ゾーンを右クリックしてプロパティを開き、「全般タブ」のプライマリゾーンを以下のようにセカンダリに変更します。
次に、図のように参照先のマスタサーバ(プライマリDNSサーバ)のIP アドレスを指定します。
4. 残りのゾーンについても、一旦プライマリとして登録するという要領は localhost と同じですが、ゾーンファイルはすでにプライマリ DNS からコピーしてきたものがあるので、それを採用します。
この後にlocalhost ゾーンと同じように、セカンダリゾーンへの設定変更を行います。これと同じ操作を、前方参照ゾーン、逆引きゾーンの両方に対して行います。
ここまでがセカンダリ DNS のゾーン設定となります。
5. 次に、プライマリ DNS のゾーン転送設定を行います。これは、プライマリ DNS 側で DNS レコードの更新があった場合に、セカンダリ DNS 側にも通知を行ってゾーンの同期を行うためのものです。
プライマリ DNS 側(今回は Windows Server 2000 Advanced)のゾーンを右クリックしてプロパティを開き、「ゾーンの転送」タブより、ゾーン転送を許可するサーバとして、今回新設した DNS サーバの IP アドレスを登録します。
これと同じ操作を、前方参照ゾーン、逆引きゾーンの両方に対して行います。
6. 最後にゾーン転送の確認を行います。
新設したセカンダリ DNS サーバ(Windows Server 2008)側でゾーンの右クリックで表示されるサブメニューより、「マスタから転送」を選択すると、プライマリDNS からゾーン内容が転送されます。ゾーン転送が成功したかどうかは、イベントマネージャで確認できます。
補足:
メールサーバーを立てている場合は、逆引き設定をお忘れなく。これを忘れてしまうと、メール送信先のサーバで逆引きチェックが設定されている場合、送信したメールが弾かれてしまい、届かなくなってしまいます。
2009-01-07
『FlexMy売管』を作るぞ! (3) --- FileMaker から MySQLに接続できない!?
【FileMaker/MySQL関連の追加情報】
『売上猫くん on MySQL』開発日記の記事一覧
FileMaker/MySQL関連の記事が増えてきたので、目次にしました。(2012/06/25追記)
AccessとFileMakerの実行速度比較テスト記事とその動画 (2011/11/17追記)
前回、MySQL でデータベースとテーブルを一つ作成したので、FileMaker から接続できるか、試してみることにする。
1. 事前準備
FileMaker は MySQL には ODBC 経由で接続するので、まず、MySQLのODBCドライバ 3.51をインストール、さらにシステムDSNとして登録した。 接続テストを実行すると、「Success; connection was made!」と表示されるので、ここまでは問題ない。
2. FileMaker Pro 9 で接続できない!?いざFileMaker Pro 9を起動してテスト用ファイルを作成。[ファイル]メニュー→[管理]→[外部データソース...]を選択し、上記で作成したDSNを指定。
さらに、[ファイル]メニュー→[管理]→[データベース...]→[リレーションシップ]タグを選択し、ウィンドウ左下にある“+”ボタンをクリックしてMySQLのテーブルを選択、“OK”すると、
「必要なテーブルが見つからないため、この操作は実行できません。」
とメッセージが表示されてしまう。 そんなこと言っても、FileMaker はテーブルとして認識してるやん?
この後、いろいろやってみたが、どうも FileMaker Pro 9 は、MySQLのテーブル、コラムに日本語が使用されていると、そのテーブルは使用できないらしい。 SQL-Server は日本語使っても全然問題ないのに…
試しに、日本語を英語に変更してみると、ちゃんと使用できる。
ただ、今回はSQL-Server ベースの『FlexSql売管』をできる限り手間をかけずMySQL に移植する(テーブルさえ全部作ってDSNを入れ替えれば、『FlexMy売管』があっという間にできるだろう)ということを前提としていたので、いまさらコラム名(フィールド名)を変更する気力は、、、、無い、 全然。
ということで、FileMaker Pro 10 のリリースをまって、再度試してみる(かも)。
【メモ】
- 実は、MySQLコマンドでもデータベース、テーブル、コラムに日本語を使用していると、文字化けする。My.iniをいじったり、コマンドプロンプトの環境をUTF8にしたりしてみたが、問題は解消せず。ただ、MySQL Administrator だけは、データベース構造に日本語を使用しても問題なく認識してくれる。
- ODBC5.1を使用してDSNを作成しても駄目。
FileMaker Pro 10 プレリリース版を使用してもやっぱり駄目。
FileMaker社は公式にサポートを言っていないが、MySQL ODBC 5.1 だと、日本語OK。 昨年の3月位から某案件で使用し始め、今のところ大きなトラブルは無し。 この某案件については、
(2010/2/5追記)
(2010/2/19追記修正)
(2010/3/25ODBC5.1の部分を打ち消す)
2008-12-19
『FlexMy売管』を作るぞ! (2) --- MySQL データベースを作ってみる
1. 取り合えず、リモートのMySQL Administrator で接続していみる
大分前にインストールしたMySQLの管理ツール MySQL Administrator と、今回インストールした MySQL 5.1 は異なるサーバ上にあるが、MySQL Administrator を起動して MySQL 5.1 に管理者権限でアクセスしようとすると、以下のエラーが出る。
Could not connect to the specified instance.
MySQL Error 1045.
MySQL 側に移動して、grant all priviledges on *.* to untara@"%" identified by "kantara" を実行し、ここで指定したユーザ名とパスワードとにより、リモートの MySQL Admin からアクセスできるようになる。
2. Migrationツールはスキップ
MS SQL-Serverで作成した『FlexSql売管』のデータベースがあるので、本当ならこれを MySQL Migration Toolkit という奴で MySQLのデータベースに変換(マイグレーション)できるといいのだが、以前失敗してるので、今回はやめておく。
3. SQL-ServerでCreate文を生成し、MySQLでそのCreate文ファイル実行
まずは、create database flexmy うんたらとやって、データベースを作成。
次に各テーブルは『FlexSql売管』の SQL-Server のデータベースから create table 文を生成して、MySQL側で実行しようと画策。 SQL-Server Management Studio Express を起動し、取引先テーブルを指定してcreate 文を作ると、こんな感じになる。
USE [neko] //『FlexSql売管』のデータベース名
GO
/****** オブジェクト: Table [dbo].[取引先] スクリプト日付: 01/07/2009 13:35:41 ******/
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[取引先](
[〒] [varchar](8) COLLATE Japanese_CI_AS NULL,
[Fax] [varchar](50) COLLATE Japanese_CI_AS NULL,
[Tel] [varchar](50) COLLATE Japanese_CI_AS NULL,
~~~~~~~~~~ 中略 ~~~~~~~~~~
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
この文章をtorihikisaki.sqlとして保存し、プロンプトの画面で、
$ mysql flexmy < torihikisaki.sql
を実行するも、SQL-Serverの吐いたSQL文をそのまま実行できるはずも無く、紆余曲折の末、以下のように変更して上記コマンドを実行すると旨く行った。
CREATE TABLE 取引先(
〒 varchar(8) NULL,
Fax varchar(50) NULL,
Tel varchar(50) NULL,
~~~~~~~~~~ 中略 ~~~~~~~~~~
PRIMARY KEY (id) );
以上でSQL-Serverのテーブル等は比較的簡単にMySQLに移植できそうなことが解かった。ところがこの後に思わぬ悲劇が待っていた。
以上