一、软件版本:
delphi 10.3.3
FireDac
MySQL 5.7 (32位)MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/
二、具体步骤
1.新建delphi程序,添加TFDConnection、TFDPhysMySQLDriverLink控件
2.在FormShow事件里写入代码(直接设置控件更方便)
procedure TForm1.FormShow(Sender: TObject);
begin
FDPhysMySQLDriverLink1.VendorLib := ExtractFilePath(ParamStr(0)) + 'data\libmysqld.dll';
FDPhysMySQLDriverLink1.EmbeddedArgs.Clear;
FDPhysMySQLDriverLink1.EmbeddedArgs.Text := '--datadir=./data';
FDConnection1.Params.AddPair('DriverID', 'MySQL');
FDConnection1.Params.AddPair('Database', 'testutf');
// 经试验,这行utf8代码有没有都一样
// FDConnection1.Params.AddPair('CharacterSet', 'utf8');
FDConnection1.Connected := true;
//有中文的话,需要加上这句话。不然会显示问号
FDConnection1.ExecSQL('set names utf8;');
end;
或者直接设置控件为:
主要是设置TFDPhysMySQLDriverLink的EmbeddedArgs参数:
--datadir=./data;--skip-innodb;--skip-networking;--character-set-server=utf8
经测试,设置数据文件的路径即可--datadir=./data;
补充:后续使用中,发现mysql报错没有具体错误信息,有错误都这样提示:
mysql_embedded: Unknown error 1146
解决这个问题需要补充一条参数: --language=./data
然后把mysql按照目录下share\english\errmsg.sys文件复制到data目录即可
关于参数的具体说明,在官方文档有写:Connect to MySQL Server (FireDAC) - RAD Studio
三、环境
从MySQL安装的根目录复制相关文件(要跟上面控件指定的VendorLib同级目录)
MySQL\lib\libmysqld.dll 放到 ./data目录下。
data目录下新建数据库同名文件夹,把数据文件放到该文件夹下。
代码已打包并上传到https://download.csdn.net/download/MANYOUZSH/88277174