我在打开共享内存协议的情况下启动了本地 MYSQL 服务器。如何使用ZeosLib连接到我的服务器?我在哪里指定它正在使用共享内存?
我正在使用 Lazarus(freepascal),尽管 Delphi 的方向是相同的(可能)。
即使TZConnection
没有连接字符串属性,您也可以在TZConnection.Properties
.
我想你以这种方式运行你的 MySQL 服务器
mysqld --skip-networking --shared_memory=1 --shared-memory-base-name='MyMemoryDB'
TZConnection.Properties
要启用共享内存连接,您可以尝试在设计时在 Object Inspector中将以下配置行添加到属性中。请注意,protocol
必须按原样设置并设置为与shared-memory-base-name
您在命令行参数中使用的值相同的值。默认值为 MYSQL,因此如果您在命令行中省略该参数,则应将以下 MyMemoryDB 值更改为 MYSQL。
所以在TZConnection.Properties
属性中尝试添加这两行
protocol=memory
shared-memory-base-name=MyMemoryDB
或在运行时在TZConnection.BeforeConnect
事件处理程序中使用
procedure TForm1.ZConnection1BeforeConnect(Sender: TObject);
begin
ZConnection1.Properties.Add('protocol=memory');
ZConnection1.Properties.Add('shared-memory-base-name=MyMemoryDB');
end;
希望这会以某种方式帮助你。我没有测试它,因为我没有合适的环境。
如果ZeOS 支持它,它可能是可以添加到 (TZ) 连接选项的文本属性。就像其他 clientlib 属性一样。