2013-06-27 64 views
4

我已经安装火鸟-服务器2.5在FreeBSD 9.1使用:火鸟2.5 CHARACTER SET WIN1252没有安装

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连接并执行“show system collat​​ion;”。结果如下:

... 
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我仍然得到相同的错误。

+0

做什么您在ISQL中运行show system collat​​ion时看到了什么? –

+0

它让我连接到数据库。然后,当我尝试连接时,我得到“Statement failed,SQLSTATE = HY000 无法访问锁定文件的目录/ tmp/firebird” – leonardorame

+0

请确保在数据库名称前加上'localhost:'前缀。 –

回答

2

你必须国际子文件夹的访问权限。几个原因:

  • 你不有权访问它(主要是在Linux/UNIX OS)
  • 使用嵌入式fbembed.dll没有国际
  • 出错了路径的副本,并且FireBird未能找到intl子文件夹

    大多数这些原因可以通过简单的重新安装服务器来解决。如果它嵌入,那么你只需要复制国际文件夹,其中fbembed.dll存在