gpt4 book ai didi

informix - 尝试在 Informix 上安装 sqldemo 时出现错误 "Invalid Locales set !!"

转载 作者:行者123 更新时间:2023-12-04 05:27:30 30 4
gpt4 key购买 nike

我对 Informix 非常陌生,并且在尝试安装 sqldemo 时遇到了一些麻烦。

设置到目前为止:

  • openSuse 12.1(32 位)
  • Informix 增长版 11.70 UC6
  • Informix SQL Developer 7.50 UC6
  • Informix RDS 7.50 UC6
  • Informix ID 7.50 UC6

  • 经过几天的挣扎和大量的阅读 http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp ,我设法安装并联机了 Informix。

    我还选择安装随安装一起提供的演示数据库实例。

    我现在尝试通过示例开始使用 Informix 4GL。

    我正在尝试启动 sqldemo 数据库。我不知道它是否会替换以前安装的 Informix 实例,但这是一个不同的问题。

    现在根据文档,运行以下命令应该设置数据库:
    sqldemo stores2t -log

    但是我收到一个错误:“无效的语言环境设置!!”。

    我曾尝试查找此错误并在文档中查找。

    我尝试在我的 .profile 文件中设置 CLIENT_LOCALE 和 DB_LOCALE。

    例如:
  • export CLIENT_LOCALE=en_US.CP1252
  • export DB_LOCALE=en_US.819

  • 这没有帮助。

    朝着正确的方向插入,或者我可以阅读的其他一些文档可以更好地解释事情,我将不胜感激。

    如果需要我提供任何其他信息,请随时询问。

    更新 1

    非常感谢您的回复。

    自从你的帖子以来,我首先尝试了几件事。
  • 更改了您指定的 CLIENT_LOCALE 和 DB_LOCALE - 同样的错误 - 所以我删除了它,因为你说它不应该被设置。
  • 修复了我的 PATH 中的一个问题,并确保它有/usr/informix/bin - 同样的错误
  • INFORMIXDIR 是/usr/informix
  • INFORMIXSERVER 是ol_informix1170(这个是用informix install 安装的数据库,不知道这个要不要改?如果改怎么办?)
  • 运行你提到的脚本,结果:
    INFORMIXDIR=/usr/informix
    INFORMIXSERVER=ol_informix1170
    INFORMIXSQLHOSTS=/usr/informix/etc/sqlhosts
    LANG=en_US.UTF-8
    ONCONFIG=onconfig
  • 我注意到我已将语言设置为 UK,这使 Locales en_gb 而不是 en_us,所以尝试在我的 .profile 中更改它,但没有帮助,因此还尝试将语言更改为 US 并将语言环境更改为 en_us,但这使得没有区别。

  • 至于你说的sqldemo脚本和已经安装的db,如果删除那个db就好了,因为这只是我学习的一个测试VB框。

    设置为 ol_informix1170 的 $INFORMIXSERVER 可能是问题所在吗?

    再次感谢您的帮助。

    尼尔

    更新 2

    再次感谢您的回复。

    有几点需要注意。
  • 我发布的 dbenv 结果显示了我假设/假定(呃-哦)意味着未设置其他环境变量的所有内容。您发布的哪些环境变量对于它的工作是绝对必要的?
  • 如上所述,我在哪里可以找到 terminfo 文件,或者是否需要创建?
  • 如上所述,SQLEXEC 变量...在哪里可以找到 sqlrm?我可以从我读过的文档中记得我认为它应该是 $INFORMIXDIR/lib?但我只有一个 esql 目录。这是正确的。
  • 除非以上前 3 项中的某些内容不会引起更多问题,否则在尝试您对 DEMOPATH=en_us/0333 sqldemo stores2t -log 的建议时,我收到以下错误:
    抱歉,无法读取构建演示数据库所需的 mkstores3 程序。检查 INFORMIXDIR (/usr/informix) 的/etc 子目录。

  • 检查/usr/informix/etc 确实表明没有 mkstores3 文件。
  • 尝试进一步注意 isqldemo,我收到以下错误:
    /usr/informix/bin/isqldemo:第 58 行:/usr/informix/demo/sql/en_us/e01c/isqldemo:没有那个文件或目录。

  • 我想这很有意义,因为没有 e01c 目录,只有 0333 目录。

    现在你能告诉我的任何事情确实是一种安慰,因为我对 Linux 和 Informix 的新手是一个重要因素。有趣的是,这个错误已经存在了这么久。我想比我自己想出如何解决它更有经验的人,或者只是从不打扰 sqldemo。

    我想这会教我阅读这个:

    INFORMIX-4GL 示例
    版本 4.1
    1991 年 7 月

    现在要检查是否存在任何更新的文本,但仍然希望在解决此问题方面有更多帮助。您认为在安装 Informix 之前恢复到先前的快照并且不选择包含 ol_informix1170 数据库可能是一个可能的解决方案吗?我不会真的看到它会是,但我知道什么。

    非常感谢您的持续时间和努力。

    问候,

    尼尔

    更新 3

    所以我确实看到我正在阅读的文件是古老的。我发现了一个使用不同脚本 (dbaccessdemo7) 的更新版本 (2002)。

    我尝试运行它,遇到了错误,但明天又是另一天。

    现在,由于检测到并解决了错误,我将将此标记为已解决。我不会在 sqldemo 上投入更多的时间和精力。

    非常感谢,如果我在使用 dbaccessdemo 7 时遇到困难,我会发布一个新问题。

    问候,

    尼尔

    最佳答案

    sqldemo脚本不会创建新服务器;它可能会破坏您现有的数据库(单个服务器可能包含多个数据库;实际上,在服务器初始化时创建了 4 个 sys* 数据库),但否则不会损害您的服务器。

    错误的可能原因

    无效区域设置的正常问题是您没有设置 $INFORMIXDIR .您需要 $INFORMIXDIR设置除非 /usr/informix是(指向)正确位置的符号链接(symbolic link)。您还需要$INFORMIXSERVER设置,你通常需要$INFORMIXDIR/bin$PATH .严格来说,$INFORMIXSERVER是唯一的强制变量;在实践中,你也担心另外两个。
    $INFORMIXDIR设置用于定位区域设置信息(在 $INFORMIXDIR/gls 中找到)和消息文件(在 $INFORMIXDIR/msg 中找到)。

    请注意,CP1252 是 Windows 代码页。通常在 Unix 上,您要么不设置 CLIENT_LOCALE 或 DB_LOCALE,要么将它们设置为:

    export CLIENT_LOCALE=en_us.8859-1
    export DB_LOCALE=en_us.8859-1

    或者您可以选择另一个更合适(对您而言)的语言环境。 8859-15语言环境包括欧元符号,例如,或 utf-8语言环境规定了数据库中的 UTF-8。 但是 ,对于初始调试,坚持使用 8859-1 语言环境,又名 819 或 0333(均基于 IBM CCSID)。如果它不适用于 8859-1,那么我们有一组问题;如果它适用于 8859-1 但不适用于其他代码集或语言环境,那么我们就会遇到一系列不同的问题。

    如果上述解决方案失败,请跟进信息

    如果这不是问题,那么我会要求提供更多详细信息——特别是 dbenv 报告的 Informix 环境。脚本如下:
    :       "@(#)$Id: dbenv.sh,v 2.11 2007/09/02 00:18:58 jleffler Exp $"
    #
    # Printout INFORMIX database environment

    informix1="DB[^=]|DELIMIDENT=|SQL|ONCONFIG|TBCONFIG|INFOR"
    informix2="ARC_|CLIENT_LOCALE=|GL_|GLS8BITSYS|CC8BITLEVEL|ESQL|FET_BUF_SIZE="
    informix3="INF_ROLE_SEP=|NODEFDAC=|ONCONFIG|OPTCOMPIND|PDQ|PSORT"
    informix4="PLCONFIG|SERVER_LOCALE|FGL|C4GL|NE_"
    informix5="TCL_LIBRARY|TK_LIBRARY"
    informix="$informix1|$informix2|$informix3|$informix4|$informix5"
    system="COLLCHAR=|LANG=|LC_|LD_LIBRARY_PATH(_64)?=|PATH=|SHLIB_PATH="
    jlss="IXD(32|64)?="

    env |
    egrep "^($informix|$system|$jlss)" |
    sort

    这是一个旧脚本;这就是为什么 shebang 不见了。

    第二组诊断

    我希望得到 dbenv 的完整输出脚本;令人惊讶的是,某些东西出现的频率如此之高。但是,鉴于您所说的,它可能没问题。

    INFORMIXSERVER 设置听起来不错。

    我被 LANG=en_US.UTF-8 震惊了设置; Informix 确实关注 $LANG$LC_*变量(这就是 dbenv 打印出来的原因)。这可能是问题的一个因素。但是,我本来希望 CLIENT_LOCALESERVER_LOCALE如果这是问题,就去处理它。另外,在我的 Mac 上,我有 LANG=en_US.UTF-8但是我可以连接到(8859-1)数据库。

    这开始看起来像是安装问题...或 sqldemo问题...

    我从 Mac 转换到 RHEL 5(古老的)x86/64 机器,并尝试运行 sqldemo那边:
    $ dbenv
    DBDATE=Y4MD-
    DBEDIT=vim
    INFORMIXDIR=/work4/informix/tools-7.50.FC4
    INFORMIXSERVER=toru_31
    INFORMIXSQLHOSTS=/work4/informix/ids-11.70.FC4/etc/sqlhosts
    INFORMIXTERM=terminfo
    IXD64=/work4/informix/ids-11.70.FC4
    IXD=/work4/informix/tools-7.50.FC4
    IXH=/work4/informix/ids-11.70.FC4/etc/sqlhosts
    IXO=/work4/informix/ids-11.70.FC4/etc/onconfig.toru_31
    IXS=toru_31
    LANG=en_US.UTF-8
    LD_LIBRARY_PATH=/lib64:/usr/lib64:/work4/informix/tools-7.50.FC4/lib:/work4/informix/tools-7.50.FC4/lib/tools:/work4/informix/tools-7.50.FC4/lib/esql:/work4/informix/ids-11.70.FC4/lib:/work4/informix/ids-11.70.FC4/lib/esql:/work4/informix/ids-11.70.FC4/lib/cli
    ONCONFIG=onconfig.toru_31
    PATH=/work4/informix/tools-7.50.FC4/bin:.:/work4/jleffler/bin:/u/jleffler/bin:/work4/informix/ids-11.70.FC4/bin:/u/jleffler/linux/x86_64/bin:/work4/informix/11.70.FC1:/usr/atria/bin:/work4/jleffler/perl/v5.12.1/bin:/usr/bin:/bin:/usr/X11R6/bin:/atria_release/cm_dist/vobs/imitools/bin:/opt/rational/clearcase/bin:/opt/rational/clearquest/bin
    SQLCMDLOG=/work4/jleffler/.sqlcmdlog
    SQLEXEC=sqlrm
    TERMINFO=/work4/jleffler/terminfo
    TERM=xterm-color
    $ sqldemo st2 -log
    Invalid Locales set !!
    $

    哦是吗?不;我的语言环境很好,谢谢!

    好吧,就这样吧......我可以重现你的问题!那是第 1 步。第 2 步是查看咒骂删除的脚本。
    PRODUCT=sql
    DEMOFILE=sqldemo
    DEFLANG=en_US.8859-1

    INFORMIXDIR=${INFORMIXDIR:=/usr/informix}
    INFENV=$INFORMIXDIR/bin/infenv
    CONVLOC=$INFORMIXDIR/bin/convloc

    if [ $# -gt 0 -a "X$1" = "X-e" ] ; then
    LOCALE=$DEFLANG # -e means en_US.8859-1 required
    shift
    else
    LOCALE=`$INFENV DBLANG` # get DBLANG value
    if [ "x${LOCALE}" = "x" ]; then
    LOCALE=`$INFENV CLIENT_LOCALE` # try CLIENT_LOCALE instead
    if [ "x${LOCALE}" = "x" ]; then
    LOCALE=`$INFENV DB_LOCALE` # finally default to DB_LOCALE
    fi
    fi
    fi

    if [ "x${LOCALE}" = "x" ]; then
    LOCALE=$DEFLANG # finally default to DB_LOCALE
    fi

    export LOCALE

    if [ "x${DEMOPATH}" = "x" ]; then
    echo "Invalid Locales set !!"
    else
    exec $INFORMIXDIR/demo/$PRODUCT/$DEMOPATH/$DEMOFILE $*
    fi

    exit $?

    请注意对 ${DEMOPATH} 的测试;请注意 DEMOPATH未在脚本中设置。所以,我们必须把它设置好。要什么?那么, ls $INFORMIXDIR/demo/sql显示有各种特定于语言环境的子目录( en_usja_jp , ko_kr , th_th , zh_cn , zh_tw ) 和下 en_us目录有 0333 (仅)。

    请运行:
    DEMOPATH=en_us/0333 sqldemo stores2t -log

    这或多或少对我有用——我相信它对你有用。我有一个稍微不寻常的设置,因为我在 $INFORMIXDIR 中只有 I4GL(p 代码和 c 代码)和 ISQL;服务器用完了不同的目录。这意味着我没有像 dbload 这样的服务器实用程序(具体)在 $INFORMIXDIR/bin .当 sqldemo脚本试图用 dbload 加载数据因此,它对我来说失败了。它对您有用,因为您将所有 Informix 软件放在一个目录中。雪上加霜的是,它运行 dbload程序通过显式路径,所以我不能 futz 我的 PATH 使其可用。

    这应该能让你继续前进。我有一个错误要报告……它是 CQ idsdb00244894。

    很抱歉你遇到了这么多麻烦。你不应该这样做。

    关于informix - 尝试在 Informix 上安装 sqldemo 时出现错误 "Invalid Locales set !!",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13026876/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com