AccessからMySQLへの移行 MySQL用ODBCドライバのインストール

サーバ側の準備はほぼできた。後はクライアント側からMySQLに接続できるよう、ODBCドライバをインストールする。以下AIからの引用。

  1. ダウンロード

MySQL公式サイトからダウンロードします。

URL: https://dev.mysql.com/downloads/connector/odbc/

「MySQL Connector/ODBC」のページで、Windows版のMSIインストーラーを選択します。

重要な注意点: Accessのビット数(32bit版か64bit版か)に合わせてODBCドライバも同じビット数を選ぶ必要があります。

Access 2016以降は基本的に64bit版が標準ですが、古い環境や意図的に32bit版を使っている場合もあります
迷ったら両方(32bit版・64bit版)インストールしておくと安全です

  1. Accessのビット数を確認する方法

Accessを開き、ファイル → アカウント → Accessのバージョン情報 をクリックすると、「Microsoft® Access® (32ビット)」または「(64ビット)」と表示されます。

  1. インストーラーの実行
    ダウンロードした.msiファイルを実行
    「Typical(標準)」でインストールを進める
    インストール完了

何事もなくインストール終了。後はデータソース(DSN)の作成だ。Windowsのスタートを右クリックし、検索で「ODBC」と入れると「ODBCデータソース(**ビット)」というのが出てくる。これをクリックすればこんな画面が現れる。

ここで追加をクリックして①〜⑤の項目(すでに設定しているはず)を入力する。

その後OKをクリックすれば接続するためのDSNができる。

AccessからMySQLへの移行 MySQLに移行用テーブル作成

MySQLに移行用テーブルを作成する。このあたりはAIにAccessのテーブル構造などを投げてやるとMySQL用のテーブル定義を作ってくれる。AI凄すぎ。

MySQLに入って、生成されたテーブル定義を走らせてみる。AIが生成したコードをコピーして貼り付けると、なんだか警告メッセージが出たが迷わずGo。最後までしっかり走った。一応確認してみる。

USE your_database;
SHOW TABLES;

DESCRIBE Hogehoge;

うん、うまく行っている。

AccessからMySQLへの移行 クライアント側のポート設定

今回はサーバをWindows上のVMwareで走らせたLinuxMintにしている。通常WMwareはNATで外部とつなげているため、そのままではホスト(Windows)からLinuxMintに繋げられない。なので、仮想ネットワークアダプタの設定で、MySQLサーバのポート3306に接続できるように設定する。

スタート→VMware→仮想ネットワークエディタ を選択し、右クリックで その他→管理者として実行 をクリック。

NATのアダプタを選択して「NAT設定(S)」をクリック。出てきたダイアログで、ポートの転送の「追加」をクリック。

ホストポート、仮想マシンのポート等を入力して「OK」で設定完了。仮想マシンにPingを飛ばしてみて反応すれば接続は大丈夫。

忘れていけないのはホストPCであるWindows側のファイアウオール設定。コントロール パネル\システムとセキュリティ\Windows Defender ファイアウォール で詳細設定からポート3306を開けておくこと。サーバ、クライアントの接続関連はこれでOKだろう。

イラフ道

国頭村宜名真には国道とは別に茅打パンダ→アスムイハイクス→辺戸岬へと続く通称もどる道という道がある。大きな岩を地域住民が主となって切り開らいた道だ。今ではかなり通りやすくなっているものの、切り開いた岩は今でもしっかりと残っている。この道は今では村道となっているが、このもととなった道がイラフ道だと言われている。このイラフ道、石積みの道路であったらしく、その遺構は今でも残っている。その上り口であったであろう場所だ。

写真の通り、かなりきれいに石積みされている。登ってみたいところだが、遺跡として価値がある場所を荒らしてしまうわけには行かない。実際、こんな表示がされている。

「旧道イラフ道の石済みが崩れることがありますので、遺構への立ち入りはご遠慮ください。」だよ。入っちゃだめだよ。

AccessからMySQLへの移行 MySQLの設定

LinuxMintはとてもコンパクトなOSなので、当然MySQLは入っていない。なのでまずはじめにMySQLをインストールする。端末エミュレータを開いて

sudo apt update

sudo apt install mysql-server

でOK。まだMySQLサービスが起動していないし、毎回手動で起動するのも面倒なので自動起動に設定しておく。

sudo systemctl start mysql ←MySQL起動

sudo systemctl enable mysql ←MySQL自動起動設定

MySQLは、デフォルトのままではローカルホストからの接続のみ許可されている。このままでは外部PCから接続ができないので外部接続を許可するよう設定する。設定ファイルは /etc/mysql/mysql.conf.d/mysqld.cnf これをエディタで開いて修正する。

sudo xed /etc/mysql/mysql.conf.d/mysqld.cnf

この場合はすべてのアドレスからの接続を許可しているが、セキュリティ等を考慮してアドレスのところは適宜調整しよう。書き換えたらMySQLサービスを再起動する。

sudo systemctl restart mysql

次に、外部接続用のユーザー作成と権限付与を行う。

sudo mysql -u root -p

でMySQLプロンプトに入り、実行。

— 特定IPからのみ許可する場合
CREATE USER ‘ユーザー名’@’接続元IP’ IDENTIFIED BY ‘パスワード’;
GRANT ALL PRIVILEGES ON データベース名.* TO ‘ユーザー名’@’接続元IP’;

— 全てのIPから許可する場合(セキュリティ上は非推奨)
CREATE USER ‘ユーザー名’@’%’ IDENTIFIED BY ‘パスワード’;
GRANT ALL PRIVILEGES ON データベース名.* TO ‘ユーザー名’@’%’;

FLUSH PRIVILEGES;
EXIT;

ファイアウオール(UFW)が有効の場合、サーバ側の接続ポート3306を開放する。

sudo ufw status

でチェックし、有効の場合は

・特定IPからのみ許可(推奨)

sudo ufw allow from 接続元IP to any port 3306

・全許可(非推奨、テスト用途のみ)

sudo ufw allow 3306/tcp

AccessからMySQLへの移行 サーバの準備

サーバOSはLinuxMintにした。これをWindows上でVMwareを動かしてMySQLを走らせることとした。まずはVMwareのインストールだが、このあたりは調べれば結構出てくるので割愛。ただ、米ブロードコム(Broadcom)の傘下となってから初回ダウンロードがややこしくなっているので注意かな。現在のVMware最新ヴァージョンは26H1だ。

ダウンロードしてインストールするが、仮想ネットワークドライバのインストールから進まない場合がある。この場合はインストーラを開いたまま「Windowsの終了」に進み終了せずに「キャンセル」で戻ると完了する模様。

インストールが済んだ後もデバイスドライバでVMwareの仮想ネットワークドライバであるvmnet*にエラー56の黄色の注意マークがついていた。後々面倒なことになったので、その解除方法もメモ。エラー解除は以下の通り。

  • レジストリエディターが開いたら、左側のツリーから以下のキーを探す。
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Clsid{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}
  • 見つかった {3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b} キーを右クリックして削除し再起動。

これで仮想ネットワークドライバが正常に動くだろう。

その後は仮想マシンにLinuxMintをインストールする。

AccessからMySQLへの移行 序章

現在俺は仕事で数字を扱う場合、大量のデータはAccessに入れている。Accessはリレーショナルデータベースとしてはクエリ作成なども視覚的で扱いやすく、Excelとの連携もしやすい。サクッと使うなら便利なデータベースだ。

しかし、データが大量になってくるとAccessの限界も見えてきた。一番困ったのはデータに上限があること。Accessは1ファイル2GBという上限があり、その上限に近づくとパフォーマンスが急激に悪化するらしい。確かに200万レコードのデータを処理させたら固まった。

データレコードはこれからも増えるのは確実。そのデータが2GBで頭打ちになるのは厄介だ。これは1営業所だけの話で、管理する営業所が増加したら倍々で増加していくことになる。これはヤバイ。

ということで、データベースを変更することにした。

サーバはLinux系としたほうが堅牢性が上がるようなので、サーバはUbuntu系のLinuxMintとしよう。また、データベースは候補としてPostgreSQLとMySQLがパッと思いつく。どちらも利用実績は申し分ないが、速度およびAccessとの連携情報が多いMySQLに決定。

デーベース移行については、忘れないように備忘録として記録しておくこととした。まずはサーバの準備から始めよう。

竜宮神

てんぷらで有名な?奥武島(おうじま)には、沖縄の琉球神道や本土の民間信仰において、海の彼方や海底にあるとされる「竜宮(ニライカナイなど)」にいる海の神様が祀られている。

景色は素晴らしい。岩の上に石積みがあり、誰かが拝んでいるのかもしれない。

CBR600RRとクロスカブのコストを比較してみた

クロスカブがあらゆる面であまりにも面白く、経済性も高いので、70,000Km走ったときのコストを比較してみた。税金・保険やブレーキパッド、ブレーキフルード、サスペンションメンテなどの費用は除外した。

いろいろな面でクロスカブは金がかからないなぁと思っていたが、まさか70,000Km走ったら230万も差が出るとは思わなかった。CBR600RRは16年で70,000Kmだったので、1年換算すると14万ほど違う。月1万以上じゃん。

計算方法を補足すると、車体価格は税込みの定価。CBR600RRはABSなしでの価格。ガソリンの係数は平均燃費、タイヤの係数はCBR600RRで使ったタイヤの平均のライフ。クロスカブではこの数字をそのまま使った。タイヤの単価はCBR600RRはスポーツカテゴリで前後輪の価格。クロスカブは現在のタイヤの大体の価格。オイルはCBR600RRはタイヤ交換時に一緒に交換していたのでその頻度での計算。単価はCBR600RRはHonda純正Racing(単価1L 4,400円の3L)、クロスカブはHonda純正Standard(単価1L 2,090円の1L)でCBR600RRの半分の距離、つまり2500Kmで交換として算出した。

ただ、クロスカブが70,000Km持つかといえば???だけどね。

S.T.A.L.K.E.R.2: Cost of Hope 8月20日配信決定

S.T.A.L.K.E.R.2の大型DLCであるCost of Hopeの配信が8月20日より開始される。ワクワクが止まらん。内容についてはSEGAのページが一番詳しいようだ。

『S.T.A.L.K.E.R. 2』初の大型拡張コンテンツ“Cost of Hope”2026年夏に登場!

ゾーンが呼んでいる。また眠れない日が始まる。