質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

4287閲覧

MySQLをC#もしくはC++でバックアップする

landy77

総合スコア1614

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2017/06/04 15:18

少しご意見をお聞かせ願いたく思います。

Windowsアプリの場合、普段ほぼC#で納品する事が多いです。

お客さんによっては作りきりのプログラムのせいで管理しておらず、前の担当者がやめて社内でわかる人間がいなくなってしまったような場合に数年ぶりにいきなり呼ばれる事があります。
現地へ行く前にいろいろ確認しておきたいというのがメインの目的です。

と言う前置きがありまして、アプリ側にDBのバックアップ機能を付けた方が良いなと、最近思っているのですが、C#等のコードでバックアップを取りたいと考えた場合、どういう形を取るのが良いかと思いまして、一度お聞かせ願えたらと思います。

現地でmysqldumpを動作させられれば何も問題なくデータももらって確認できますが実際は遠方で現地に行くのが難しい場合も多かったりします。
要するにMySQLのインストール端末にアクセスしてと言う事でしたらMySqlDumpを動作させられますが、それでしたら正直質問する意味は無いので無しでという事です。
それであればプログラムにMySqlDumpを無理矢理同梱させようかと考えましたが、ライセンスが分からなかったので保留しています。

こちらで納品しているアプリなのでユーザー名等は当然把握しております。
そこら辺の必要な前提条件や、こういう形でどう?等のご意見をお願い致します。

そもそも現地で取れば・・・・と言うのや、なぜSQLServerExpressでは無いのか、等は話が繰り返しますので無しでお願いします。
(SQLServerExpressならこういう形で簡単にできるなどの意見は今後の参考になるのでお願いします)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

C# が使え mysqldump が使えるなら C# から起動すればいいのでは?
Process クラス

投稿2017/06/05 06:28

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

landy77

2017/06/06 00:43

サーバーが入ってる端末であればそれでOKです。 要するにクライアント端末でMySqlDumpが入ってないPCで何かバックアップ手段を準備しておきたいなという事です。 MySqlDumpのexeをコピーしてクライアントに持ってくるとかはライセンスが分からないのでどうしようかな・・と。 書き方が悪かったですね、すみません。
guest

0

ベストアンサー

取りたいのは、お客さんが自身で開発したもののデータなのか、あなたの会社で開発したもののデータなのでしょうか?
前者であれば、費用をもらって現地に行くようにすればいいし、後者であれば開発者としては相当意識の低い気がします
もし受託開発をして納品しているものに、今までサーバー側での定期的な自動バックアップの仕組みを組み込んでないとか怖すぎます
→もし定期的な自動バックアップの仕組みを取り入れているのならその直近のデータを送ってもらえばいい話ですよね
作りきりのシステムなのか、定期的に更新を提供する形態(要はお金をいただく形態ですよね)とデータのバックアップ機能の有無は相関ありませんよね

要はクライアントアプリ側でDBのバックアップ機能を付加したいということでしょうか
必要なデータをテキスト(固定長、CSV、TSV)やXMLで書き出せる機能があれば最低限困らないのでは?

投稿2017/06/04 16:22

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

landy77

2017/06/04 18:20

おっしゃる事は全くその通りです。 通常の顧客は定期的にバックアップを行っておりますし、現地で受け取る事もあればリモートが可能であればこちらで接続してバックアップデータを受け取ったりはしています。 そういうことの出来ない顧客が一部いて、CSVで書き出すのはすぐに思いつきますが、その場合はMySqlDumpに比べて復帰が多少面倒になるなぁと思っていたので、一括で書き出せる方法が何かあるのかな?と思い質問したと言う流れでした。 作りきりかどうかは確かに質問とは全然関係なかったですね、すみません。
dojikko

2017/06/04 18:44 編集

あとSQLServerならということで追記しておくと、SQLServerには`BACKUP DATABASE`、`RESTORE DATABASE`等のコマンドがADO.Netを通して投げられるのですが、MySQL(MySQLコネクタ)には無いのでしょうかね?
landy77

2017/06/06 00:38

返信頂いてから公式を調べてみたのですがMySqlのConnectorには特段にバックアップ機能は用意されていないように思います。 バックアップ方法もMySqlDumpかサーバーのファイル自体をバックアップするか、レプリケーションでバックアップして下さい的な事が書いてあるようです。 一応テーブル単位では SELECT * INTO OUTFILE 'file_name' FROM tbl_name で行えるような事が書いてはありますが、これなら個人的な印象としてはCSVとあまり変わらないですね・・・ 昔はSqlServerExpressが無かったのでMySqlを使ったのですが、ライセンスの問題でMariaDBになったりしてましたが、今後はSQLServerExpressも調べて候補にしたいと思います。 根本的には変わっておりませんがdojikko様、ご助言頂ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問