【问题标题】:Firebird 2.5 CHARACTER SET WIN1252 is not installedFirebird 2.5 CHARACTER SET WIN1252 未安装
【发布时间】:2013-06-27 22:23:53
【问题描述】:

我在 FreeBsd 9.1 上安装了 Firebird-Server 2.5,使用:

pkg install firebird-server-2.5.2_1

一切正常,因为我可以使用 FlameRobin 从外部 PC 进行连接。

现在,当我尝试使用 gbak 恢复数据库时,我得到了这个:

...
gbak: ERROR:    CHARACTER SET WIN1252 is not installed
gbak:Exiting before completion due to errors

我应该在服务器端安装更多东西吗?该数据库是在 Windows 机器上创建的,这就是它的字符集为 WIN1252 的原因。

编辑:在遇到一些麻烦后,我卸载了 firebird 并重新安装了,但没有使用 SUDO。

现在我可以使用 isql-fb 进行连接并执行“显示系统排序规则;”。结果如下:

...
TIS620_UNICODE, CHARACTER SET TIS620, PAD SPACE, SYSTEM
UCS_BASIC, CHARACTER SET UTF8, PAD SPACE, SYSTEM
UNICODE, CHARACTER SET UTF8, PAD SPACE, SYSTEM
UNICODE_CI, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, CASE INSENSITIVE, SYSTEM
UNICODE_CI_AI, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, CASE INSENSITIVE, ACCENT   INSENSITIVE, SYSTEM
UNICODE_FSS, CHARACTER SET UNICODE_FSS, PAD SPACE, SYSTEM
UTF8, CHARACTER SET UTF8, PAD SPACE, SYSTEM
WIN1250, CHARACTER SET WIN1250, PAD SPACE, SYSTEM
WIN1251, CHARACTER SET WIN1251, PAD SPACE, SYSTEM
WIN1251_UA, CHARACTER SET WIN1251, PAD SPACE, SYSTEM
WIN1252, CHARACTER SET WIN1252, PAD SPACE, SYSTEM
WIN1253, CHARACTER SET WIN1253, PAD SPACE, SYSTEM
WIN1254, CHARACTER SET WIN1254, PAD SPACE, SYSTEM
WIN1255, CHARACTER SET WIN1255, PAD SPACE, SYSTEM
WIN1256, CHARACTER SET WIN1256, PAD SPACE, SYSTEM
WIN1257, CHARACTER SET WIN1257, PAD SPACE, SYSTEM
WIN1257_EE, CHARACTER SET WIN1257, PAD SPACE, SYSTEM
WIN1257_LT, CHARACTER SET WIN1257, PAD SPACE, SYSTEM
WIN1257_LV, CHARACTER SET WIN1257, PAD SPACE, SYSTEM
WIN1258, CHARACTER SET WIN1258, PAD SPACE, SYSTEM
WIN_CZ, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, SYSTEM
WIN_CZ_CI_AI, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM
WIN_PTBR, CHARACTER SET WIN1252, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM

...但是使用 gbak 我仍然得到同样的错误。

【问题讨论】:

  • 在 ISQL 中运行 show system collation; 时会看到什么?
  • 它要求我连接到数据库。然后,当我尝试连接时,我得到“语句失败,SQLSTATE = HY000 无法访问锁定文件的目录 /tmp/firebird”
  • 确保在数据库名称前添加localhost:前缀。
  • 现在我得到:“无法附加到密码数据库”。密码数据库在firebird拥有的/var/db/firebird/security2.fdb中:firebird,权限-rw-rw----
  • 听起来您的 Firebird 服务器没有以正确的权限运行

标签: firebird freebsd firebird2.5


【解决方案1】:

您无权访问 intl 子文件夹。几个原因:

  • 您无权访问它(主要在 linux/unix 操作系统上)
  • 使用嵌入的 fbembed.dll 而没有 intl 子文件夹的副本
  • 您的路径有问题,Firebird 无法找到 intl 子文件夹

这些原因中的大部分都可以通过简单的重新安装服务器来解决。如果它是嵌入的,那​​么您只需要复制 intl 文件夹,其中 fbembed.dll 存在

【讨论】:

  • 非常感谢,我不确定,但我认为 intl 内容必须与 Embedded..dll 处于同一级别
【解决方案2】:

似乎是 ICU 出现了新端口更新的问题,应该修复它

http://svnweb.freebsd.org/ports?view=revision&revision=328894

您可以在此处查看其他更改

http://www.freshports.org/databases/firebird25-server/

【讨论】:

    【解决方案3】:

    就我而言,我的 firebird-super-server 工作正常,直到我在 CentOS 7 中升级了软件包。然后我收到下面提到的错误。

    错误信息->

    Firebird 2.5 CHARACTER SET WIN1250 未安装

    解决方案:将 firebird-super-server 更改为 firebird-super-classic 后解决了我的问题。

    【讨论】:

    • 这听起来像是包中的一个错误,您应该向 Firebird 的 CentOS 端口的维护者报告。
    • 这里也会发生同样的情况。在将这些包裹推入镜像之前,他们不自己尝试一下吗?这不是用什么有趣的东西,这破坏了我的簿记软件。
    • 降级解决了这个错误,从koji.fedoraproject.org/koji/buildinfo?buildID=860631获取包
    • 还将 exclude=firebird-filesystem,firebird-superserver,firebird,firebird-libfbembed,firebird-libfbclient (和其他)放入 /etc/yum.repos.d/epel.repo
    猜你喜欢
    • 1970-01-01
    • 2022-06-22
    • 2012-03-23
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 2010-12-06
    相关资源
    最近更新 更多