「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:2701
現在:2


データベースエンジンのMysqlへの変更

ページOpenOffice.org FAQの登録ページ
投稿者urudakara
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-12-28 05:31:19 (火)
OSLinux (ubuntu 10.04)
依存するページfaq/6/104
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

こんにちはいつもお世話になってます。

faq/6/104で質問させていただいた、urudakaraです。

faq/6/104の後半で問題になったスピードの遅さの改善の為に、 今回はデータベースエンジンの変更について教えてください。

Openofficeの標準のデータベースエンジンはHSQLですが、それをより高速なエンジンに変えたいと思っています。自分ではMysqlというデータベースエンジンがいいのかなあ・・・と漠然と考えています。

既に2000件近くのデータが入力されたデータベースをMysqlに移行するにはどうすればいいのでしょうか?

質問が漠然としすぎているとかと思いますが、なにぶん分からない事ばかりなのでよろしくお願いします。


今どこまで進んでますか

M.Kamataki (2010-12-28 10:38:45 (火))

BaseからMySQLのデータベースに接続できていますか? 接続できていれば、元のBaseのodbファイル、MySQLと接続したodbファイルを起動し、互いのテーブルカテゴリーを開いて、コピー元のテーブルをコピー先のテーブルカテゴリーにドラッグ&ドロップすることでテーブルのコピーができます。MySQLへの移行はテーブル一つずつ行う必要があります。

テーブルをコピーする際、「テーブルのコピー」ダイアログボックスが表示され、対話的に操作ができるのでわかりやすいと思います。

BaseからMySQLの接続がまだの場合は、以下のブログなどは参考になりそうでした。Ubuntuでの説明ですし。

058-MySQL 5.1 OpenOffice 3.2 Baseネイティブ接続
http://ugoisgood.blogspot.com/2010/10/058-mysql-51-openoffice.html

Baseを使い異なるデータベースどうしでテーブルのコンバートができることを紹介した資料を作成したことがあります。2006年のもので、MySQL Connecter登場以前に作成した資料ですが、もしよろしければ、以下のPDFもご覧になってください。

http://openoffice-docj.sourceforge.jp/wiki/images/OSC2006.DB_ooo2.pdf

元のBaseのodbファイルからCSVファイルに書き出して、CSVファイルを改めてMySQLのテーブルとしてインポートする方法もあります。この方法なら、BaseとMySQLの接続は必須ではありませんが、ややハードルが高いので、「テーブルのコピー」機能を利用したほうが簡単かと思います。

接続は出来たと思いますが・・・

urudakara (2011-01-03 23:30:57 (月))

Kamatakiさんいつもどうもありがとうございます。

レスが遅くなってしまって申し訳ありません。
自分で可能な限り調べて色々やってみてからじゃないとと思い遅くなりました。

さて以前に指摘されたサイトに行ってみたり、添付してくれたPDFも読みました。
ありがとうございます。

画像を添付します。

Screenshot.jpg

MySQLに接続することは出来たと思います。
画像の牛群管理(1月03)というのがそれです。テーブルにcowというものとmysqlとが見られると思います。
例えばこのcowを選択して”デザイン表示でテーブル作成”をすると、キチンとテーブルが作成されるようになりました。
そこで今度は元データが保存されている牛群管理(12月17)でテーブルの個体個別情報を選択、メニューからコピーを選び牛群管理(1月03)のテーブルcowを選んで貼り付けをしました。

そして次の様な手順でコピー条件を設定しました。

「テーブルのコピー」の設定でオプションの”定義とデータ”を選択、次へ
「列の適用」ですべての既存の列を”>>”ボタンを押し次へ
「タイプの書式設定」で完了を押すとスクリーンショットの様なエラーが出ました。

自分で色々調べて見たのですが、原因が分かりません。
ここでちょっと自分だけでは限界なので質問しました。
よろしくお願いします。

テーブルについて

M.Kamataki (2011-01-04 00:57:57 (火))

とりあえず、「cow」や「mysql」はテーブルではなくデータベース(スキーマとも呼びます)です。MySQLは複数のデータベースを作成でき、その下にさらに複数のテーブルを作成できます。ご提示されたスナップショットでは、データベース「mysql」の前の「+」マークをクリックするといくつかテーブルが表示されると思います。

というわけなので、「テーブルcowを選んで貼り付けをしました。」というご報告は正確ではないです。「テーブルのコピー」ダイアログボックスのテーブル名欄にはどのようなテーブル名が入力されていたのでしょうか。たぶん「cow.foo」のような指定になると思います。つまり「データベース名.テーブル名」です。

また、エラー内容を見るとデータベース「root@localhost」を指定しているように思えます。正しいデータベースを指定しているのでしょうか。

このあたりをチェックしてみてください。

p.s. 新しいバージョンのMySQLとの接続は行っていないので、外しているかもしれませんが。

コピー出来ました!!

urudakara (2011-01-04 14:27:05 (火))

こんにちはkamatakiさん。

まずデータベース(スキーマ)の事しりませんでしたので、教えてもらいまた一つ学ばさせてもらいました。ありがとうございます。

ご指摘の通り「テーブルのコピー」ダイアログボックスのテーブル名欄に「cow.個体個別情報」(「データベース名.テーブル名」)とする事でコピーが無事に出来ました!!!

喜んでテーブル個体個別情報を開きました。

Screenshot2.png

・・・が文字化けしていて読めない状態になっています。
Q&A内の質問を調べてみたらたぶん faq/3/53 や faq/5/381 あたりが参考になるのかなあと思いますが、私には少し難しすぎて理解が出来ませんでした。

別の質問を立ち上げようかなあとも思いましたが、タイトルの「データベースエンジンのMysqlへの変更」の中で解消しないといけなくなる一括りの問題だと思うのでここで質問させてください。

この文字化けを回避するにはどうすればいいのでしょうか?
MySQLのバージョンはMySQL 5.1.41-3ubuntu12.8となってました。
よろしくお願いします。

MySQLのcharacter set

M.Kamataki (2011-01-04 23:28:58 (火))

MySQLではまるのが、だいたいcharacter setなんですよね。一応、MySQLのcharacter setはどのように行ったか、あるいは全然行なわなかったのか教えてください。

UbuntuでのMySQLのインストールに関するブログで、character setにも触れたものが、以下です。

http://huikmn.blogspot.com/2010/11/ubuntu-mysql.html

/etc/mysql/conf.d/character_set.cnfの作成で、文字コードをutf8にする例が載っています。こちらの設定は行いましたか。もし、まだでしたら設定を行い新しくスキーマを作成して、character setが反映されているか確認して下さい。

MySQLに関する漢字コードの説明が以下にありました。character setの確認方法にも触れています。

http://www.db.is.kyushu-u.ac.jp/rinkou/mysql/code.html

先に紹介した以下のページにも、character setの説明があるんですが、ちょっと怪しい記述です。やはりutf8が良いのではと思います。

http://ugoisgood.blogspot.com/2010/10/058-mysql-51-openoffice.html

新しいデータベースから反映

ike@九州 (2011-01-05 12:54:48 (水))

character set の変更反映は既に作成された cow には反映されません。

sudo gedit /etc/mysql/conf.d/character_set.cnf

から、作成保存して

sudo service mysql restart

で、MySQL再起動
その後、新しく作成したデータベースから反映される仕様だそうです。

cow を削除して、再作成の必要がありますね。

MySqlへ変更できました

urudakara (2011-01-08 22:41:40 (土))

こんにちはkamatakiさん

教えてもらったブログ等から何とかコピーをすることが出来ました!!
自分一人では絶対に出来ないレベルの問題だったので大変たすかりました。
ありがとうございます。

自分はcharacter setをまるっきり行っていませんでした。
ご指摘のとおり、いったんMySQLデータベースのcowを作った後に、MySQL Administrator Toolで文字コードをutf-8に変えたりshift-jisに変えたりしましたが、反映されませんでした。
http://huikmn.blogspot.com/2010/11/ubuntu-mysql.html
さんのブログの設定ファイルを作ってから MySQL AdministratorでCreate Schemaを行い
新しいデータベースを作り、そこをコピー先にしたら出来ました。日付けなどのデータが数値になっていたりしましたが、これはbaseのテーブルの編集で直せました。

Screenshot3.jpg


いつもながらkamatakiさんには私にとっての難題をとく手がかりを教えてもらい、お手数かけてもうしわけありませんでした。これからも色々教えてもらいたいと思うので、その時はよろしくお願いします。

スピードの早さについて

urudakara (2011-01-08 23:26:29 (土))

すみません、MySQLへの変更の主目的であるスピードに関する記述をまるっきりしていないことに気づきましたので一応書いておきます。

レコードの検索は素晴らしく早くなり、一文字入力する毎にレコードが絞り込まれる様子は爽快です。

またopenofficeのbaseがデータベースの表紙(?)だということがよくわかりました。
初心者の私は最初データベースエンジンとbaseが不可分の一つのものの様に感じていました。
上手く言えませんが今はデータベースエンジンの上にbaseが乗っかっているイメージです。

個人的には「最初からHSQLではない高速なデータベースエンジンがついていればいいのに・・・」と思ってしまいました。
まあ、私には分からない諸事情があるのかもしれませんが・・・

とにかく業務がスムーズに進むようになりましたので感謝します。ありがとうございました。

完了にします

M.Kamataki (2011-01-11 11:20:09 (火))

コメントありがとうございました。

HSQLDBではなく、他のデータベースエンジンに切り替えてスピードアップされたというのは貴重な情報だと思います。Accessに近いわかりやすさを求めた結果がHSQLDBだったのだと思います。ただ個人向けとしか薦められませんね。当Q&Aでは、業務でお使いならそれなりのデータベースエンジンを導入されることをお薦めしています。

MySQL キャラクターセット

urudakara (2011-07-29 10:26:11 (金))

こんにちは、以前に質問し回答を頂いたurudakaraと申します。

MySQLへのデータベース変更後に問題となったキャラクターセットの方法を書いたブログが削除されてしまいました。

作者の方とも連絡がつきませんが、他の方にも非常に有効な情報だと思うので、当時webページをwriterへコピーし保存したものをアップロードしておきます。

みなさんのご参考になればさいわいです。
ブログの作者の方大変有益な情報ありがとうございました。

Re: MySQL キャラクターセット

M.Kamataki (2011-07-30 10:26:26 (土))

ドキュメントのご提供、ありがとうございます。

お名前:
題名:


添付ファイル: fileUbuntu に MySQL をインストールする。.odt 579件 [詳細] fileScreenshot3.jpg 961件 [詳細] fileScreenshot2.png 893件 [詳細] fileScreenshot.jpg 874件 [詳細]