2010年2月4日木曜日

MySQLのデータメンテナンス

MySQLのテーブルの作成、更新には「MySQLAdministrator」を使っていますが、データの追加や更新をすると「MySQL server has gone awayエラーコード:Error 2006)」といったエラーでデータベースへの反映が出来なくなる時があります。
設定の見直しで何とかなるのかもしれませんが、有力な情報も無くデータの更新は非効率ながらもJavaで作成した画面経由で行っていましたのですが、
今使っているPCは購入する時にOfficeのProfessionalを入れていたのを思い出し、ODBC接続でデータのメンテナンスが出来ないか試してみました。

■ 用意したもの
MySQL用のODBC用ドライバ
ダウンロードしてインストールしておきます。
・Microsoft Access 2007

■ 作業手順

1、ODBCデータソースの作成
コントロールパネルの管理ツールより「データソース(ODBC)」をクリック
image 

タブ「システムDSN」をクリックし「追加」ボタンをクリックimage

ドライバ一覧から「MySQL ODBC 3.51 Driver」を選択し「完了」をクリックimage


設定画面が表示されるので項目を入力して「OK」ボタンをクリック
 
タブ:Login
image

項目名

内容

Data Source Name

ACCESSから接続する際に使用する名前
今回はMySQLとしました

Description

コメント?の様なので未入力

Server

サーバ名、もしくはIPアドレス

User

ユーザ名

Password

パスワード

Database

上の3つが正しければコンボボックスにデータベース名が一覧で表示されるのでデータベースを選択

タブ:Connect Options
image

   

項目名

内容

Initial Statement

set names utf8

Character Set

cp932

その他

特に設定なし


タブ:Advanced
image

色々と設定できる項目があるみたいですが、今回は設定なし。


2、Accessの設定
Access 2007 の起動して新規にファイルを作成
image 

リボンメニュー「外部データ」をクリックして「その他」-「ODBCデータソース」をクリック
image  

「リンクテーブルを作成してソース データにリンクする」を選択して「OK」ボタンをクリック
image

タブ「コンピュータデータソース」を選択して一覧から先ほど作成したODBCデータソースを選択して「OK」ボタンをクリック
image 
テーブルの一覧が表示されるので選択して「OK」ボタンをクリック
image

以上の手順でAccessからMySQLのデータの操作が出来るようになりました。

はまった所がODBCデータソースの作成時の文字コード部分で、Character Setの値が空やsjisでも表示は出来るのですが、日本語の入力時、環境依存文字(㈱、①等)に文字コードが認識できないようなエラーが出ました。

0 件のコメント: