MobiLink 服务器支持 MySQL Community 和 Enterprise 服务器 5.1.22 或更高版本。QAnywhere 和 MobiLink 模型不支持 MySQL。
要设置 MySQL 用作 MobiLink 统一数据库,必须运行设置过程,此过程将添加 MobiLink 同步所需的 MobiLink 系统表、存储过程、触发器和视图。可通过两种方法实现这一点:
使用 MySQL 命令行工具或 MySQL Query Browser,运行 syncmys.sql 安装脚本,它位于 install-dir\MobiLink\setup 中。确保您的 MySQL 用户 ID 拥有创建触发器的权限。
在 Sybase Central 的 MobiLink 插件中,选择 [模式] » [管理] 并连接到服务器数据库。右击数据库名,选择 [检查 MobiLink 系统设置]。如果需要对您的数据库进行设置,系统将提示您继续。请注意,如果想使用一个现有的 MobiLink 系统设置,则 default_schema 应该为 MobiLink 系统设置的模式。
运行安装脚本的数据库用户是具有更改 MobiLink 系统表权限的唯一用户,这是配置 MobiLink 应用程序所必需的。请参见所需权限。
MobiLink 服务器用于连接统一数据库的 RDBMS 用户必须能够使用 MobiLink 系统表、过程等,但不能使用任何限定符(例如,SELECT * from ml_user)。请参见MobiLink 服务器系统表。
必须使用 MySQL web 站点所提供的 ODBC 驱动程序为 MySQL 统一数据库设置 ODBC DSN。MobiLink 服务器支持 MySQL ODBC 驱动程序 5.1.3 或更高版本。请参见:
要指定 Unix 中的 ODBC 配置文件,执行以下操作之一:
如果某些同步脚本包含用分号分隔的批处理 SQL 命令,那么,当您配置 MobiLink 服务器的 DSN 以连接 MySQL 数据库时,可能需要选中在 [MySQL Connector/ODBC Data Source Configuration] 窗口的 [Flags 3] 页面上的 [Allow Multiple Statements] 复选框。
存储引擎 MobiLink 服务器要求缺省存储引擎遵从 ACID。如果缺省存储引擎不遵从 ACID,则应确保使用遵从 ACID 的存储引擎(如 InnoDB 和 Falcon)来创建所有 MobiLink 服务器表。
存储过程 在存储过程调用中不能使用 INOUT 或 OUT 参数。需要这些参数的过程必须作为返回 OUT 值的函数实现。
需要 INOUT 参数的服务器事件,如 authenticate_user 和 modify_user,必须作为函数实现并且使用 SELECT 语句运行,而不是 CALL 语句。
因为用户定义的命名参数在服务器事件运行之后不会修改,因此不受支持。
游标脚本 事件 upload_fetch、download_cursor 和 download_delete_cursor 必须使用 SELECT 语句来调用,而这些事件由 MobiLink 服务器以读取已提交的隔离级别来运行。MySQL ODBC 驱动程序中的错误会使服务器读取未提交操作,如 INSERT、UPDATE 和 DELETE 语句,这样就会导致统一数据库和远程数据库之间的数据不一致。
为解决此问题,将 LOCK IN SHARE MODE 子句附加到 SELECT 语句。例如,
SELECT column1 FROM table1 WHERE id > 0 LOCK IN SHARE MODE |
该子句会防止 SELECT 语句执行未提交操作。
批量上载 MobiLink 服务器依赖于 MySQL ODBC 驱动程序,而该程序当前不支持批量上载。
MLSD MobiLink 服务器依赖于 MySQL ODBC 驱动程序,而该程序当前不支持 MSDTC。
用于 Unix 的 64 位 MobiLink 服务器上的 SQLLEN 数据类型 MySQL ODBC 驱动程序将 SQLLEN 定义为一个 32 位整数,导致与将 SQLLEN 定义为一个 64 位整数的 64 位 MobiLink 服务器存在差异。如果在 64 位 Unix 环境下运行 MobiLink,则必须将以下内容添加到 ODBC 配置文件,
length32=1 |
该条目强制服务器将 SQLLEN 读取为 32 位整数。您的配置应与以下示例类似:
[a_mysql_dsn] Driver=full_path/libmyodbc5.so server=host_name uid=user_name pwd=user_password database=database_name length32=1 |
MySQL 服务器配置 MobiLink 同步脚本作为文本存储在 ml_script 表中,需要时可对其进行检索。可能需要在 my.ini 文件中将 max_allowed_packet 设置为 16m 或更大。
请参见MobiLink 隔离级别。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |