首页 > 解决方案 > 在 Docker 容器外读取时,Sqlite3 数据库格式错误

问题描述

我正在一个 Docker 容器内生成一个数据库,该容器通过一个卷与其 Linux 服务器主机通信。该卷包含数据库。当我使用命令行从容器内部查询数据库时,读取它没有问题。但是,当我从主机执行此操作时,出现以下错误。有什么好的调试方法吗?

--------------------------------------------------------------------------
DatabaseError                             Traceback (most recent call last)
/usr/local/lib64/python3.6/site-packages/pandas/io/sql.py in execute(self, *args, **kwargs)
   1680         try:
-> 1681             cur.execute(*args, **kwargs)
   1682             return cur

DatabaseError: malformed database schema (DescTbl_config) - near "WITHOUT": syntax error

The above exception was the direct cause of the following exception:

DatabaseError                             Traceback (most recent call last)
<ipython-input-14-230e094dfbb2> in <module>
----> 1 pd.read_sql("SELECT * FROM sqlite_master",con)

/usr/local/lib64/python3.6/site-packages/pandas/io/sql.py in read_sql(sql, con, index_col, coerce_float, params, parse_dates, columns, chunksize)
    487             coerce_float=coerce_float,
    488             parse_dates=parse_dates,
--> 489             chunksize=chunksize,
    490         )
    491 

/usr/local/lib64/python3.6/site-packages/pandas/io/sql.py in read_query(self, sql, index_col, coerce_float, params, parse_dates, chunksize)
   1725 
   1726         args = _convert_params(sql, params)
-> 1727         cursor = self.execute(*args)
   1728         columns = [col_desc[0] for col_desc in cursor.description]
   1729 

/usr/local/lib64/python3.6/site-packages/pandas/io/sql.py in execute(self, *args, **kwargs)
   1691 
   1692             ex = DatabaseError(f"Execution failed on sql '{args[0]}': {exc}")
-> 1693             raise ex from exc
   1694 
   1695     @staticmethod

DatabaseError: Execution failed on sql 'SELECT * FROM sqlite_master': malformed database schema (DescTbl_config) - near "WITHOUT": syntax error

标签: dockersqlite

解决方案


推荐阅读