读数据库数据遇到的错误

读数据库遇到的错误都很迷:

首先出现的错误是:

psycopg2.OperationalError: server closed the connection unexpectedly     This probably means the server terminated abnormally     before or while processing the request.

这个可能是数据库连接ip池导致的问题,还有就是网络的问题:

第二个问题:

SSL SYSCALL error: Software caused connection abort (0x00002745/10053)

这个问题是程序本身造成的,调用con的需要在同一个函数里面,不能通过返回con来调用使用它;

总结来说,就是一个ssh数据库连接只能是在局部作用域中使用,不能在将他作为一个函数返回之后在用它进行其他操作:

def get_psql_connection_obj1(self,is_ssh):
    if is_ssh:
        with SSHTunnelForwarder((jdbc.ssh_host, jdbc.ssh_port),
                                ssh_password=jdbc.ssh_password, ssh_username=jdbc.ssh_username,
                                remote_bind_address=(jdbc.host, jdbc.port)) as server:

            __conn = psycopg2.connect(
                host='localhost',
                port=server.local_bind_port,
                database=jdbc.database,
                user=jdbc.user,
                password=jdbc.password
            )
            data = pd.read_sql(con=__conn, sql=sql_script.prediciton_query_string)
            return data
    else:
        __conn = psycopg2.connect(
            host=jdbc.host,
            port=jdbc.port,
            database=jdbc.database,
            user=jdbc.user,
            password=jdbc.password
        )
        data = pd.read_sql(con=__conn,sql=sql_script.prediciton_query_string)
        return data

这里把pd.read_sql写在函数的外面将导致问题

猜你喜欢

转载自blog.csdn.net/weixin_38859557/article/details/84848952