我在一个RHEL映像上的Openshift Container平台上部署了一个SQL Server。可以使用容器本身的SQLCMD命令访问服务器。但是当我尝试从容器/ pod外部访问同一个服务器时,我得到一个非常奇怪的错误,如下所示:
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Driver's SQLAllocHandle on SQL_HANDLE_HENV failed.
我正在从仅包含客户端工具的容器中尝试此操作。我也试图创建一个DSN。我仍然得到同样的错误。已部署Kubernetes服务,并指向端口1433.
我错过了什么?请指教。谢谢
答案 0 :(得分:0)
确定。事实证明,默认情况下,在OCP中启动的容器不会以已知用户身份运行。这会导致此错误。通过创建新用户,在调用import redis
import os
import logging
log = logging.getLogger()
log.setLevel(logging.DEBUG)
def test_redis(event, context):
redis_endpoint = None
if "REDIS" in os.environ:
redis_endpoint = os.environ["REDIS"]
log.debug("redis: " + redis_endpoint)
else:
log.debug("cannot read REDIS config environment variable")
return {
'statusCode': 500
}
redis_conn = None
try:
redis_conn = redis.StrictRedis(host=redis_endpoint, port=6379, db=0)
redis_conn.set("foo", "boo")
redis_conn.get("foo")
except:
log.debug("failed to connect to redis")
return {
'statusCode': 500
}
finally:
del redis_conn
return {
'statusCode': 200
}
之前,可以解决此问题。