【GeneXus】C#でMYSQL8に接続するためには

Kさんに聞かれたので調べた。

環境

GeneXus 16 u4
Mysql 8
C#.net

適当なディレクトリ作成

C:\mysql_add_dll

DLLを準備する

①libmysql.dll
②msvcp140.dll
③ssleay32.dll
④vcruntime140.dll
⑤libeay32.dll

②と④はVisualStudio 2015 C++ 再配布パッケージで取得できるが、めんどいので他のツールのインストールディレクトリから取得。

③と⑤はMYSQL8のインストールディレクトリの「lib」ディレクトリから取得。

①は以下からダウンロードする。
https://downloads.mysql.com/archives/community/

バージョン等は以下を選択すること。
Product Version: 5.7.27
OS Version: Windows (x86, 32-bit)

1で作成したディレクトリにDLLをコピー

C:\mysql_add_dll に
①~⑤のDLLをコピーします。

環境変数にディレクトリを追加する

パソコンの環境変数に「C:\mysql_add_dll」を追加します。

GeneXusから接続してみる

GeneXusから接続テストをしてみます。

ビルド

ビルドしてwebフォルダが作成されるのを確認して、web\binフォルダに①~⑤でそろえたDLLをコピーします。

またDLLコピー

MYSQL8のインストールディレクトリの「lib」ディレクトリから「libmysql.dll」をweb\binフォルダにコピーします(上書き)。
理由:IISで実行されるアプリケーションは64bitなので①のDLLだとエラーになる。

IIS再起動

IISを再起動して、再配置したDLLを読み込みなおします。

あとはビルドしたアプリで正常にデータの取得、登録、更新、削除ができればOKです。


おまけ(必要ないかも)

パスワード系でダメだったら以下のコマンドを実行すること。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

追記 GAM

GAMはGAMでDLLを持っているそうなので、準備したDLLをまたコピーします。

[GeneXusのインストールディレクトリ]\Library\GAM\Platforms\NetMySQL
に①~⑤のDLLをコピーし、
MYSQL8のインストールディレクトリの「lib」ディレクトリから「libmysql.dll」もコピーします。

コピーしたらGeneXusを再起動して、GAMのDBに接続テストを行い、テーブル作成をしてください。

まとめ

デフォルトでつながるようにしとけや(# ゚Д゚)!!!!!!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください