LoginSignup
0
0

More than 1 year has passed since last update.

Windows MySQLクライアントインストールなしでリモート接続・データ取得・TSV出力

Last updated at Posted at 2022-07-23

概要

WindowsでMySQLのクライアントをインストールせずにリモートMySQLに接続し、データ取得してローカルPCにTSV出力します。

背景としては、ツールとして他のPCでMySQLでのデータ取得をインストールなしでサクッと使いたい場面がでてきました。バッチファイルで実行できるようにします。

環境

リモートサーバ Ubuntu 20.04 + MySQL 8.0.28
DB名 = test テーブル名 = test
ローカルPC Windows 10 Pro 21H2
ダウンロードしたMySQL Community Server 8.0.29

test.test
+------+--------------------------------+
| id   | name                           |
+------+--------------------------------+
| 1   | 1234567890                     |
| 1   | 1234567890                     |
| 1   | 1234567890                     |
| 1   | 1234567890                     |
+------+--------------------------------+

大雑把な流れ

1.MySQL Community Serverをダウンロードする。
2.zipから必要なファイルを取り出す。
3.バッチファイルとsqlファイルを作る。
4.さらに必要なdllを集める。
5.1つのフォルダにまとめる。
6.実行する。

手順1 MySQL Community Serverをダウンロードする。

ここから、zipをダウンロードします。
アカウント作成などが必要になるかもしれません。
image.png

手順2 zipから必要なファイルを取り出す

ダウンロードしたzipの中binフォルダの中から、libcrypto-1_1-x64.dll、libssl-1_1-x64.dll、mysql.exeを取り出します。
image.png

手順3 バッチファイルとsqlファイルを作る

バッチファイルは同じディレクトリのtest.sqlを読み込んで、同じディレクトリにtest.tsvを出力するようにします。

test.bat
mysql -u USER -pPASSWORD -h 88.88.88.88 -P 3306 < test.sql > test.tsv

sqlファイルは、SELECT文を書いておきます。

test.sql
select * from test.test;

手順4 さらに必要なdllを集める

ここまでやっても他PCで動かない可能性があるので、さらにdllを集めます。
C:\Windows\System32の中から、msvcp140.dll、vcruntime140.dll、vcruntime140_1.dllをコピーして集めます。
※コピーしてペーストします。そのまま移動させると問題が出ます。
※ない場合はMicrosoft Visual C++ 2015-2022 Redistributableをインストールしてから集める必要があります。

手順5 1つのフォルダにまとめる

すべてのファイルを1つのフォルダにまとめます。mysql.exeを動かすには、同じディレクトリにdllを配置する必要があります。
image.png

手順6 実行する

他のPCにフォルダごと持って行ってバッチファイルをダブルクリックして実行します。
ネットワークがつながっていてフォルダ内にtest.tsvが出力されます。
image.png

test.tsv
id	name
1	1234567890
1	1234567890
1	1234567890
1	1234567890

最後に

mysqlのコネクタ、ドライバなどいろいろ試してみましたが、やりたいことを実現するためにこんな感じになりました。
もっと良い方法もあるかもしれません。
tsvをcsvにすることもできると思います。私は置換してカンマに変えようと思います。
こちらの情報を参考にさせていただきました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0