在新服务器安装中尝试隔离问题花费了大量时间:
我已经安装了 MySQL、unixODBC 和 MySQL Connector for ODBC,并像在其他 32 位系统上一样设置了 odbc.ini 和 odbcinst.ini,但在查询后,应用程序(PHP 除外)收到乱码数据时出现问题。
为了控制目的,以下是 MySQL 直接查询返回的内容:
mysql> 从用户限制 3 中选择 id、用户名; +------+----------+ | ID | 用户名| +------+----------+ | 786 | 101010 | | 587 | 1234 | | 1124 | 123456 | +------+----------+ 共 3 行 (0.00 秒) mysql>
通过 ODBC 在 isql 中运行相同的命令会返回以下乱码结果,仅返回第一部分数据:
SQL> 从用户限制 3 中选择 id、用户名; +-----------+---------------------------------+ | ID | 用户名| +-----------+---------------------------------+ | 786 | | | +-----------+---------------------------------+ SQLRowCount 返回 3 已获取 3 行 SQL>
我的应用程序(如 isql)无法返回多条数据。奇怪的是,PHP 脚本似乎运行良好,但不幸的是我的应用程序不是基于 PHP 的。以下是格式化的 PHP 输出:
ID:786 用户名:101010 ID:587 用户名:1234 ID:1124 用户名:123456
odbc配置文件
[站点数据库] 描述 = MySQL ODBC 站点数据库 驱动程序 = MySQL 用户 = root 密码 = 密码 数据库 = 测试 选项 = 3 套接字 = /var/lib/mysql/mysql.sock
odbcinst.ini
[MySQL] 驱动程序 = /usr/lib64/libmyodbc3.so 使用次数 = 1
系统信息:
操作系统:CentOs 5.7 x86_64
MySQL:服务器版本:5.5.20-log MySQL 社区服务器 (GPL) by Remi x86_64
MySQL 连接器:v3.51.30-0 x86_64
unixODBC:2.2.11 x86_64
如果有人能就如何解决这个问题提出一些建议,我将不胜感激。
答案1
使用 MySQL 的 RPM 是错误的做法。我找到了一个可以顺利运行的 EL5 RPM,不知道 YUM 存储库中没有显示什么……但现在一切都很好。