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に接続テストを行い、テーブル作成をしてください。
まとめ
デフォルトでつながるようにしとけや(# ゚Д゚)!!!!!!!